线程与进程有什么区别呢?
举个简单的例子,当你在LOL的时候,在相同的桌面上可能有一个播放器正在播放你最喜欢的歌曲。这是一个两个进程并行工作的例子:一个进程运行LOL程序;另一个进程运行一个媒体播放器。这种情况最适合用多任务这个词来描述。进一步观察播放器,你会发现在这个进程内,又存在并行的工作。当播放器向音频驱动发送音乐数据的时候,用户界面上与之相关的歌词信息不断地进行更新。这就是单个进程内的并行线程。应用程序可以使用多线程技术来提高程序性能,改善用户体验。尤其是在多核处理器中,多个线程可以在多个CPU上同时运行,能够有效提高程序的运行速度。如果一个应用程序需要处理一些耗时的数据处理计算,应该用一个独立的线程来做这些运算,而用另外一个应用程序来处理和用户的交互。这样,用户可以提前中断或者暂停数据处理工作,或者可以做些和数据计算无关的工作,提高用户的工作效率。
那么,线程的并行性是如何实现的呢?在单核CPU计算机上,并行工作类似在电影院中不停移动图像产生的一种假象。对于进程而言,在很短的时间内中断占有处理器的进程就形成了这种假象。然而,处理器迁移到下一个进程。为了在不同进程之间进行切换,当前程序计算器被保存,下一个程序计算器被加载进来。这还不够,相关寄存器以及一些体系结构和操作系统特定的数据也要进行保存和重新加载。
就像一个CPU可以支撑两个或多个进程一样&