进程、线程、CPU核数之间的关系

1 单核cpu处理程序

1.1 单进程多线程处理(一个进程就是一个独立程序的一次运行)

        (1)在一个应用程序里,添加键盘、鼠标功能,这就是单进程2线程,如果键盘线程获取了锁,那么这个线程将获取CPU的运行时间,其他线程将被阻塞。但CPU始终处于运行状态,影响计算时间的其实只是加锁和解锁的时间。并不会发生CPU空闲的现象。cpu利用率100%

1.2 多进程处理(两个独立程序的一次运行)

        (1)将键盘、鼠标分别写出两个独立的应用程序,独立运行,与上面不同的是,进程间通信如果要交换数据很麻烦,需要很多步骤,效率低


2 多核cpu处理程序

2.1 单进程多线程处理(线程可以夸核处理,进程之间不能,就像QQ不能访问支付宝一样,安全性)

        2.1.1 与单核对比区别在于,如果A核处理的键盘线程阻塞时,B核被空闲,CPU工作效率下降一半

        2.1.2 没有阻塞时,比如用QQ的A线程听歌,B线程发消息,多核CPU效率比单核快很多

            (1)比如QQ有4个线程用4个核处理分别需要20+5+3+2ms,处理完的总时间为20ms,实际上需要30/20=1.5个核处理最合理,一个处理20ms,一个处理5+3+2ms,4个核的效率则为1.5/4=37.5%

              (2)优化负载后,分配时间为10+7+7+6ms,30/10/4=75%,效率提高了,通过系统的处理可以最优化到每个线程的处理时间为30/4=7.5ms,效率就为100%

2.2 多进程多线程处理(就像电脑上,不同的应用程序,不可能一个进程融合QQ、支付宝、暴风等)

        (1)比如A核处理QQ,BCD核不能用来处理QQ,不能夸核处理,这一点上和单核一样,但是多核可以用B核处理支付宝进程,对于单核,它要一个人处理2个进程,时间上会慢,就会出现平时的卡顿




猜你喜欢

转载自blog.csdn.net/qq_40334837/article/details/80265129