进程的通信
1.共享存储
2.消息传递
3.管道通信
管道通信可以理解为共享存储的优化和发展,因为在共享存储中,如果某进程要访问共享存储空间,必须是,该空间没有别的进程在里面进行写操作,否则访问行为就会被阻塞。
而管道通信,存储区变成了缓冲区,允许一边写入一边读出,这也决定了管道通信必为半双工通信。
线程
线程是独立调度的基本单位,进程是拥有资源的基本单位。
线程的属性
用户线程和内核线程:
用户线程:在内核的支持上,在用户层通过线程库实现创建,调度和管理,且无需内核支持。
内核线程:在操作系统上,在其内核空间内执行创建,调度和管理
多线程模式
一对多:一个内核线程对应多个用户线程。效率较高,但如果一个线程执行阻塞,其他线程也就被阻塞。
一对一:一个内核线程对应一个用户线程,并发性好,但开销大。
多对多:多个内核线程对应更多用户线程,上面两者的折中。