一、首先思考为什么要引入线程?
先来看一个例子:
因为我们知道I/O读取和CPU解压是可以同步进行的,若按上面的程序顺序执行的话,若系统性能足够好,读取速度和解压速度足够快一般是不会有影响的,但是若I/O的读取的速度跟不上时,可能无法连续的播放,因此我们考虑是否可以让可以并发执行的一些程序并发执行。
如下图我们可以采用多进程的实现方法。
但是若按照上面那样执行则会存在两个问题:
(1).这些进程之间如何通信,如何共享数据?
(2).系统开销较大:需要创建进程、进程结束、进程切换。
因此根据以上问题我们对进程提出了如下改进,在进程中增加一类实体,满足以下特性:
&#