并且 , 如果线程1在某一时刻获取了该核执行进程的能力 , 假设此刻该进程发出了IO请求 , 于是线程1掌握的执行进程的能力 , 就可以被线程2获取 , 即切换到线程2 。这是在执行线程间的切换 , 是非常轻量级的 。(WIKI: if resources for one process are not available, then another process can continue if its resources are available)
9、多线程可能会出现一种现象:假如2核4线程CPU , 有两个进程要被调度 , 那么只有两个线程会处于运行状态 , 如果这两个线程是在同一核上 , 则另一核完全空转 , 处于浪费状态 。更期望的结果是每核上都有一个CPU分别调度这两个进程 。
关于CPU上的高速缓存
1、最高速的缓存是CPU的寄存器 , 它们和CPU的材料相同 , 最靠近CPU或最接近CPU , 访问它们没有时延(<1ns) 。但容量很小 , 小于1kb 。
- 32bit:32*32比特=128字节
- 64bit:64*64比特=512字节

文章插图
3、每核心都有一个自己的L1缓存 。L1缓存分两种:L1指令缓存(L1-icache)和L1数据缓存(L1-dcache) 。L1指令缓存用来存放已解码指令 , L1数据缓存用来放访问非常频繁的数据 。
4、L2缓存用来存放近期使用过的内存数据 。更严格地说 , 存放的是很可能将来会被CPU使用的数据 。
5、多数多核CPU的各核都各自拥有一个L2缓存 , 但也有多核共享L2缓存的设计 。无论如何 , L1是各核私有的(但对某核内的多线程是共享的) 。
推荐阅读
- 何谓泡好茶
- Redis的三个框架:Jedis,Redisson,Lettuce
- 泡过花胶的水还要拿来煲汤吗 花胶不泡水可以直接煲吗
- mac os上的包管理工具
- JavaScript 中对于Promise的理解
- 青蟹和大闸蟹哪个好 大闸蟹壳黄的好还是青的好
- 食物应该放在锡纸的哪一面 食物放在锡箔纸的哪一面
- 芦荟有祛斑的功效吗
- 芦荟的美容功效是什么
- 芦荟有美白的功效吗
