【线程理论篇】 -- 2019-08-16 20:51:20
原文: http://blog.gqylpy.com/gqy/231 " 一、线程概念的引入背景 1. 进程 之前的博客 已经整理了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。正是这样的设计,大大提高了CPU的利用率。进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的。 2. 有了进程为什么还要有线程 进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的cpu和其它资源,可以提高计算机的利用率。很多人就不理解了,既然进程那么优秀,为什么还有线程呢?其实,仔细观察就会发现进程还有很多缺陷的,主要体现在以下两点: 进程只能在同一时间处理一件任务,如果想在同一时间处理两件任务,进程就无能为力了. 进程在执行过程中如果遇到阻塞,例如等待i/o,整个进程就会挂起,即便进程中有些工作不依赖之例,也将无法执行. 3. 线程的出现 60年代,在OS中能拥有资源和独立运行的基本单位是进程,然后随着计算机技术的发展,进程出现了很多弊端。一是由于进程是资源拥有者,创建、撤销