进程与线程
对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程。
有些进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程(Thread)。
最近这段时间,我的人生从单进程转变成了多进程。回学校的前几天,基本就只有改论文这一核心的进程,其他基本都不是事儿。生活处于单进程状态的时候,人其实是比较轻松的,而且因为实证结果已经跑好了,不需要那么担心,写写文字而已。单进程的生活是令人向往的。
单进程生活,还有比如期末考试之前的一两个礼拜。虽然有好几门考试,但是呢,这段时间只需要把心思花在学习上,不需要去干其他的事情。这个时候,学习是一个单进程,而单进程里包括了很多个线程,就是很多门功课,比如三中三高。
多进程的生活,比如最近这几天,需要应付导师那边的一些杂事。而且这些杂事是具有很强的时效性的,所以必须要在多个进程之间切换。其实还是挺苦恼的。以前不是说,做事情要一心一意,不能三心二意嘛?但是生活中很多时候,我们都是要三心二意地处理事情的。这是现代生活的复杂性所决定了的,我们其实没有选择,除非归隐山林。
所以,多进程地处理事情,是我们必须要掌握的一项本领。这项本领掌握地好不好,可能和未来的发展有很大的关系。但是呢,多进程地处理事情,其实并不是说,我们在同一个时间点,处理两件或者两件以上的事情,就像单核cpu一样的,其实我们是一部分的时间处理这件事,一部分的时间处理那件事。当然cpu可以无缝切换,看上去好像是同时在处理两件事情,我们人自然是无法做到这样的。我们所要做到的应该是,在处理意见是的时候,专注于这一件事情,而不去想其他的事情。对于其他的事情也是这个道理。就是说,多个进程互不干扰。这其实是很难做到的,因为我们的大脑是有感情的cpu。
当然,要实现多进程工作效率的最大化,还需要合理地分配好处理不同事情的时间。但这个不是本篇文章所研究的核心内容,我们这边就不讲了。
网友评论