进程和线程的通信方式
2020-03-23 本文已影响0人
看到这朵小fa了么
https://blog.csdn.net/liyue98/article/details/80112246
进程和线程
进程是由操作系统进行分配资源,线程相对于进程而言,是一个更加接近于执行体的概念,可以和同进程的其他线程之间直接共享数据,根本区别在于地址不同。多进程中每个进程有自己的地址空间,线程则共享地址空间。所有其他区别都是因为这个区别产生的。比如说:
- 线程速度快,切换快。因为他们处于同一地址空间。
- 线程的资源利用率好。
- 线程使用公共变量或者内存的时候需要同步机制,但进程不用。
通信方式
-
线程之间由于共享资源,所以通信主要是通过锁机制、信号量机制保证资源的同步
-
进程之间的通信方式则有多种
-
管道:父子进程之间的半双工通信
-
有名管道:进程之间的半双工通信
-
消息队列:复杂消息体的通信,克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
-
信号量:一个计数器,用于共享资源的的锁机制 处理同步 控制资源的互斥使用
-
信号:用于通知某个事件是否发生 处理异步
-
共享内存: 通过映射同一块内存进行资源共享,最快的通信方式
-
套接字:主要用于不同设备的进程间通信