01. 单核CPU与多核CPU的理解 单核CPU,其实是一种假的多线程,因为在一个时间单元内,也只能执行一个线程的任务。 例如:虽然有多车道,但是收费站只有一个工作人员在收费,只有收了费才能通过,那么CPU就好比收费人员。如果某个人不想交钱,那么收费人员可以把他“挂起”(晾着他,等他想通了,准备好了 ...
分类:
其他好文 时间:
2020-07-27 16:05:55
阅读次数:
69
一、协程基础 cpython下多个线程不能利用多核:规避了所有的io操作的单线程。 协程 操作系统不可见 协程本质就是一条线程,多个任务在一条线程上来回切换,来规避io操作,降低了线程上的io操作降到最低。 4 cpu:可以接受5个进程,20个线程,协程500 切换并规避IO的模块 gevent 利 ...
分类:
其他好文 时间:
2020-07-26 19:02:39
阅读次数:
53
一、multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程。Python提供了multiprocessing。 multiprocessing模块用来开启子 ...
分类:
系统相关 时间:
2020-07-26 15:09:05
阅读次数:
97
Python多进程模块 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。Python提供了multiprocessing。 multiprocessing ...
分类:
系统相关 时间:
2020-07-24 19:05:39
阅读次数:
90
作为一名合格的程序猿/媛,对于进程、线程还是有必要了解一点的,本文将从下面几个方向进行梳理,尽量做到知其然并知其所以然: 进程和线程的概念和关系 进程演进 进程间通信 理解底层基础,助力上层应用 进程保护 进程和线程的概念和关系 用户下达运行程序的命令后,就会产生进程。同一程序可产生多个进程(一对多 ...
分类:
系统相关 时间:
2020-07-24 16:40:45
阅读次数:
92
现代CPU为了提升性能都会有自己的缓存结构,而多核CPU为了同时正常工作,引入了MESI,作为CPU缓存之间同步的协议。MESI虽然很好,但是不当的时候用也可能导致性能的退化。 到底怎么回事呢?一起来看看吧。 false-sharing的由来 为了提升处理速度,CPU引入了缓存的概念,我们先看一张C ...
分类:
其他好文 时间:
2020-07-23 16:11:03
阅读次数:
80
JavaScript 线程 JavaScript 语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。随着电脑计算能力的增强,尤其是多核 CPU 的出现,单线程带来很大的不便,无法充分发挥计算机的计算能力。 Web Worker 的 ...
分类:
其他好文 时间:
2020-07-22 15:55:24
阅读次数:
62
搬运自我的CSDN https://blog.csdn.net/u013213111/article/details/107031986 最近在多核ARM芯片上搞并行计算,涉及到核间数据交互,因此对多核cache coherence稍作探究。想解决的疑问是:各个核之间是否“知道”内存中的数据被其他核 ...
分类:
系统相关 时间:
2020-07-19 15:51:21
阅读次数:
172
任务Task与线程Thread不可比。Task是为了利用多CPU多核的机制而将一个大任务不断分解成小任务,这些任务具体由哪一个线程或当前线程执行由OS来决定。如果你想自己控制由哪一个Thread执行,要么自己定议task的scheduling, 要么自己来创建Thread来执行代码。 1)task是 ...
中断,会导致正在运行的CPU要停下手头的工作去响应,这需要工作任务的切换,就带来了我们熟知的上下文切换,而频繁上下文切换,是对系统性能的重要影响因素。 如何减少终端带来的影响? 中断问题一般出现在多核机器上,如果你的机器是多核,16核或者32核,能不能把中断绑定到其中一个CPU上,再把其他剩余的cp ...
分类:
系统相关 时间:
2020-07-17 19:37:54
阅读次数:
93