20. 线程能有效地增强不同执行程序之间的通信效率。在大多数的操作系统中,独立进程之间的通信需要与核心交互,以提供进程通信所需的缓冲区。因为父进程的全局变量,在创建子进程后,两者也是分开存放的,所以即使父子进程之间也不能通过全局变量进行通信。可是,由于在同一进程中的线程共享进程的内存空间,如一个线程修改了存储空间中的一项数据,其他线程访问该数据项时也会获得改变了的结果。因此子线程之间就能通过进程的全局变量进行通信。
编一个C程序,使用进程的全局变量作为输入输出的缓冲区,线程1一次读入一个字符串,将其存入缓冲区,线程2从缓冲区取出数据,输出打印,用线程的互斥锁实现两个线程间韵同步。程序调试成功后用I/O转向再测试程序,标准输入输出都改为文件。