线程,进程,cpu核数,cpu密集型操作,

1、线程数和cpu核数:
    一般情况下每个核心都有一个线程,几核心就有几线程,但是intel发明了超线
程技术,可以让单核模拟多核心工作,intel的超线程可以让单核心具有两个线程,双核四线程、四核八
线程、六合十二线程。超线程技术能够让cpu性能大幅提升,效率更高。所以intel的双核四线程处理器
能够和amd的四核比,四核可与八核比,但超线程只是模拟多核并不是真多核,所以还是有差距的,不过
基于amd技术上的落后所以intel拥有超线程的处理器虽然核心少但性能却更强。
2.线程和进程:
    线程在现在的多处理器电子设备中是最小的处理单元. 一个进程可以有多个线程,
 这些线程之间彼此共享该进程的资源. 但是进程之间默认是相互独立的,
 若数据共享则需要另外特定的操作. 这里做一个比喻. 现在有一个大型工厂, 该工厂负责生产汽车.
 同时这个工厂又有多个车间, 每个车间负责不同的功能, 有的生产轮胎, 有的生产方向盘等等.
 每个车间又有多个车间工人, 这些工人相互合作, 彼此共享资源来共同生产轮胎方向盘等等.
 这里的工厂就相当于一个应用程序, 而每个车间相当于一个进程, 每个车间工人就相当于线程.
3.进程是一个实体。每一个进程都有他自己的内存地址段(heap,stack等等),进程是执行中的程序。
(2)程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体。
(3)线程,又是被称为轻量级进程(Lightweight Process LWP)是程序执行的最小单元。
每一个程序都至少有一个线程,若程序只有一个线程,那么就是程序本身。单线程的进程可以简单的认为只有一个线程的进程
。一个进程在同一时间只做一件事,有了多线程后一个进程同一时间可以做多件事
。每个线程可以处理不同的事务。无论系统有几个CPU,即使进程运行在单CPU上
,多线程也可以是进程并发处理多个事务。一个线程阻塞不会影响到另一个线程
。多线程的进程可以尽可能的利用系统CPU资源。但也不是线程越多越好,线程越好,
CPU分配给每个线程的时间片就越少。

复制代码

转载于:https://juejin.im/post/5d5a1295f265da03a14857e7

你可能感兴趣的:(线程,进程,cpu核数,cpu密集型操作,)