jwnydy 发表于 2012-12-11 20:56

多线程真的是多个线程一起运行吗

本帖最后由 jwnydy 于 2012-12-11 21:25 编辑

百度出来的一个答案,




不知这个回答怎么样?大侠们有没有其他更好的解释?谢谢啊

电脑是2核的,是在linux环境下

耗资喜欢猫 发表于 2012-12-11 21:09

这得看你是不是多核了,如果是多核的话,一个核心一个线程没压力,不过操作系统也必须支持多核

jwnydy 发表于 2012-12-11 21:24

回复 2# 耗资喜欢猫


    电脑室2核的,是在linux环境下

Cyberman.Wu 发表于 2012-12-12 08:19

反过来想,从CPU的角度想,它是不知道操作系统什么的,就是fetch -> decode -> execute,一直只干这件事。而操作系统所谓的线程,无非一个是执行的逻辑单元,切换线程只是跑另一部分逻辑单元,但对于CPU来说,一直是执行前面的过程。所以对于单个核,同一时刻只可能是一个线程在跑,对于多核/多CPU,同一时刻是会有不同线程在跑的。

jwnydy 发表于 2012-12-14 10:09

回复 4# Cyberman.Wu


    谢谢你给予我问题的回答,谢谢~

tempname2 发表于 2012-12-14 17:19

这令人想起concurrent与parallel的区别。曾经看到解释说,前者只意味着多个过程交互进行,不一定同时;后者则严格强调同时进行。

jwnydy 发表于 2012-12-14 18:44

回复 6# tempname2


    嗯,谢谢你的回答

crazyhadoop 发表于 2012-12-18 08:57

那也得看这两个线程有没有交集,若是不相干的两个线程,可以宏观和微观都可以并发的,否则就是宏观并发,微观串行

jwnydy 发表于 2012-12-19 13:03

回复 8# crazyhadoop


    谢谢版主的解惑
页: [1]
查看完整版本: 多线程真的是多个线程一起运行吗