本文主要聊聊线程与进程以及它们之间的通讯。线程与进程的概念我相信我们每个开发者都常常听到,但是我们是否真正理解了它们? 如何应用它们来实现一个并发程序的通讯,如何利用它们合理利用系统资源,都关乎我们是否能实现一个好的应用程序。
本文主要是在于温故而知新,主要是用来梳理线程进程的知识。
进程
是具有一定独立功能的程序,相对操作系统来说,操作系统分配资源给进程,所以进程作为系统资源分配和调度的基本单位,进程是可以独 立运行的一段程序。
线程
线程进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能独立运行的基本单位。相对于进程,线程拥有系统资源比较少,而且线程的生命周期是进程这个程序来控制的。在运行时,只是暂用一些计数器、寄存器和栈 。同时一个进程至少要有一个主线程。所以真正执行任务的是线程。
通讯
线程、进程都具有并发性。在并发运行时如何来通讯?如何保证相关逻辑的同步运行?
今天我们只道出通常有以下几种方式?
1、共享变量
2、wait/notify机制
3、Lock/Condition机制
4、管道
后续博文再逐步分析每种方式的具体实现