1.经典的线程模型
理解进程的一个角度看,用某种方法把相关资源整合在一起,进程有存放程序正文和数据以及其他资源的地址空间,这些资源包括打开的文件,子进程,即将发生的报警,信号处理程序,账号信息等。把他们都放到进程中更容易管理。
另外一个概念是,进程拥有一个执行的线程,线程有一个程序计数器,记录接着要执行哪一天指令。线程拥有寄存器,保存线程当前的工作变量。线程还有一个堆栈,用来记录执行历史,每一帧保存着一个已调用的但还没有返回的过程。进程是把资源集中在一起,而线程则是在cpu上被调度执行的实体。
图2-11 a中,有三个传统的进程,每个进程都有自己的独立的地址空间可控制线程,每个线程都在不同的地址空间运行。
图2-11 b中,有一个进程,但是有三个控制线程,三个线程全部在相同的地址空间中运行。 他们可以共享同样的全局变量,打开的文件,子进程,报警信息等。
所以在多线程中,一个线程打开的文件,在另外一个线程也可以编辑,线程其实就是共享一组资源,共同去完成某一个任务而共同工作。
2.线程的状态
运行,阻塞,就绪,终止四种状态。被阻塞的线程正在等待某个释放他的事件,例如一个线程执行从键盘读入数据时,该线程被阻塞直到输入事件。就绪表示线程可被调度运行,运行表示线程拥有cpu。
3.进程间通信
转载:https://blog.csdn.net/littlexiaoshuishui/article/details/101017833
查看评论