最近在看关于进程和线程的知识,之前飞哥问过我进程和线程有什么区别,当时我心中的概念就是一个进程中可以运行多个线程, 然后就没有然后了。书看到现在(就是apue和unp),总该有点自己的想法。
我觉得理解这两个概念得从历史的和发展的角度来看(哲学还是很有用的),在计算机的早期,处理器还不像今天这么强大,更没有所谓的多核。那时的程序时一个一个排着队等着处理器去执行的,执行完一个再去执行下一个。后来处理器的功能逐渐强大,就有了多任务,或者说多进程(Multi-Processes)的概念,那时候的程序就是并发执行的。并发还不能说是并行的,只是看上去像同时运行的而已(因为CPU调度速度快了嘛)。所以人们就产生了将一个大的目标分解成多个联系不是很紧密的小任务交给CPU去执行的想法,如果实在是无法避免的联系,没办法,进程间通信呗。之后,随着处理器越来越强大,人们对进程间通信的需求也越来越大,而此时的进程间通信的资源消耗往往是很大的。所以,为了方便进程间通信,线程(Threads)的概念就提出来了。
所以说,进程和线程不是莫名其妙的就有的,都是历史发展的产物,在特定的历史时期就会产生不同的东西,可以说线程就是进程在多核时期的大的发展吧。
以上纯粹是个人的一点点想法,有不正确之处,还请各位大神不吝赐教,多谢。