目录
3. 为了完成任务,创建很多的线程可以吗?线程真的是越多越好?
1.并发和并行
CPU单核
CPU多核、多CPU
1.1 并发
单核上,多个线程占用不同的CPU时间片,物理上还是串行执行的,但是由于每个线程占用的CPU时间片非常短(比如10ms),看起来就像是多个线程都在共同执行一样,这样的场景称作并发(concurrent)。
1.2 并行
在多核或者多CPU上,多个线程是在真正的同时执行,这样的场景称作并行(parallel)。
2. 多线程的优势
多线程程序一定就好吗?不一定,要看具体的应用场景:
2.1 IO密集型
(涉及I/O操作)
无论是CPU单核、CPU多核、多CPU,都是比较适合多线程程序的
I/O密集型更适合设计成多线程程序
内核有2个队列:
系统直接从就绪队列取任务执行指令。
I/O密集型的任务不受CPU资源,因为可能调度不到,没有放在就绪队列(等待的资源没有准备好,放在阻塞队列),操作系统是从就绪队列取任务,分配时间片的。
2.2 CPU密集型
&#