怎样理解多线程

  线程与进程的理解?

  进程是拥有一系列资源的集合,这些资源包括内存空间、内核对象、资源文件等等。我们将进程理解为一个工厂,工厂本身不能运作,需要有人来操作。那么这些人就是线程,一个工厂里工人可以只有一个也可以有多个,如果只有一个人那么他就需要去一个个的去操作工厂里的设备,如果这些设备可以同时运行,那么这样操作效率太低。因此,工厂会多聘用几个工人,他们每个人操作自己的设备,这样效率就会大大提高。工人在操作设备时,可能两个人需要使用同一个工具,一个工人要去使用这个工具时,他会等在那里等另一个人使用完工具,然后他就可以接过工具,继续干活了。

  在上述的论述中,工厂就是进程,工人就是线程,工厂所占的位置就是内存空间,工厂里的设备和工具就是数据和资源,多个工人同时工作就是多线程,几个工人要用同时使用一个工具就是线程同步。

  知乎“多线程有什么用?”这个问题的最高回答讲的很生动。https://www.zhihu.com/question/19901763

  在windows和Unix中对进程和线程有略微定义的差别,在Unix中进程和主线程是同一个东西。Unix开进程代价较小,在windows中开线程代价较小。

posted @ 2016-11-10 10:36  oscarwin  阅读(181)  评论(0编辑  收藏  举报