参考资料:
http://www.zhihu.com/question/25532384
什么是进程与线程:进程就是处理的一个应用,线程即是应用中的某断程序。
进程和线程都是一个时间段的描述,是CPU工作时间段的描述。
CPU看来所有的任务都是一个一个的轮流执行的,具体的轮流方法就是:
先加载程序A的上下文,然后开始执行A,保存程序A的上下文,调入下一个要执行的程序B的程序上下文,然后开始执行B,保存程序B的上下文。。。。
所以进程与线程即是CPU处理时间的片断描述
进程 就是包换上下文切换的程序执行时间总和 = CPU加载上下文+CPU执行+CPU保存上下文
线程 之间的切换也类似,只是在同一地址空间中,比进程的切换工作量小得多。
单核CPU在同一时间断内只能同时执行某个进程中的某个线程中的某个时间片!
大牛的解释
单线程编程与多线程
以下红字是单线程执行顺序(注意:这里的要表达的是单线程是顺序执行的)
以下红字是多线程执行顺序(注意,这里表达的是线程间切换执行)
不难看出在单核的情况下,多线程由于在线程之间的切换效率会更底,所以线程的优势也在于多核计算机中会有更好的体现。
总结:在频繁需要等待的逻辑中可以考虑使用多线程,但多线程由于有不必要的多余的开销,需要斟酌使用。