LRU-K页面置换算法LRU & LRU-KLRU-least recently used-最近最少使用算法,是一种内存数据淘汰策略,使用常见是当内存不足时,需要淘汰最近最少使用的数据。LRU常用于缓存系统的淘汰策略。
对于固定大小(size)的缓存池,当缓存池满时使用LRU对页面进行驱逐。LRU满足先进先出,使用双向链表+HASH即可维护。
例如:size 为2时
操作
驱逐顺序
1. access(1)
2. access(2)
3. setEvictable(1)
1
4. setEvictable(2)
1 、2
5. access(3)
2
6. setEvictable(3)
2 、3
7. access(2)
3 、2
LRU-K ,它的过程是对于访问次数小于k的页面按照FIFO驱逐,大于等于k的驱逐顺序为具有最大后向k距离访问时间戳的页面
例如:size为2,k为3时例如:size 为2时有以下操作
操作
驱逐顺序
1. access(1)
2. access(2)
3. setEvicta ...
c++多线程一、线程创建1.1 创建线程线程头文件 thread
1234567std::thread thread([]{ while(true){ std::cout<<std::this_thread::get_id()<<'\n'; std::this_thread::sleep_for(std::chrono::microseconds(50)); }});//创建线程thread.join();//等待线程结束
1.2 互斥量、原子变量互斥量头文件 mutex
123456789101112131415std::mutex mtx;int sum=0;auto f=[&](){ for(int i=0;i<1000000;++i){ mtx.lock(); ++sum; --sum; mtx.unlock(); }};std::th ...