同步与互斥:简单的控制
通信:交互的信息更多
Windows和Linux下用于同步与通信的机制大体一致,下面简单做一个归纳。
1.多线程的同步
方式 Windows Linux 备注
原子操作 有 有 速度快
互斥锁 临界区和Mutex pthread_mutex_t 此外还有自旋锁,读写锁等扩展,用于互斥,保证一个时刻只有一个线程执行
条件变量 Event pthread_cond_t 用于同步。
信号量 Semaphore sem_t 用于控制资源的访问
2.多进程的同步
方式 Windows Linux
互斥锁 Mutex pthread_mutex_t
条件变量 Event pthread_cond_t
信号量 Semaphore sem_t
多进程的同步方式与多线程的同步方式基本一致,除了不能使用原子操作外;另外对于同步对象的创建方式上稍有差异。
3.多进程的通信
方式 Windows Linux
信号 无 异步的通信机制
共享内存 有 有
匿名管道 有 有
命名管道/FIFO 有 有
消息队列 有 有
套接字 有 有
此外还有一些特殊的机制,如内存映射文件,邮箱等机制。
联系客服