进程之间可以通过一些粗粒度的通信机制来交换数据,包括:套接字、信号处理器、共赏内存、信号量以及文件等
套接字: 多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。
套接字 分为三种 1、流套接字(SOCK_STREAM)2、数据包套接字(SOCK_DGRAM) 3、原始套接字(SOCK_RAW)
线程的优势:
1、发挥多处理器的强大能力(cpu和i/o的例子)
2、建模的简单性
3、异步事件的简化处理
4、响应更灵敏的用户界面(AWT,GUI)
线程的风险:
1、安全性问题
2、活跃性问题
当某个操作无法继续执行下去,就会发生活跃性问题。在串性程序中,活跃性问题体现形式之一就是死循环
3、性能问题
当频繁的出现上下文切换操作,就会带来极大的开销:保持和恢复执行上下文,丢失局部性,并且CPU时间更多花在线程调度而不是线程运行上