同步的意思是说,让不同进程能够在同时到达一个已知的特定状态之前等待另一方的执行。Linux 下常见的同步方法有SysVIPC 的 sem(信号量)、file locking / record locking(通过 fcntl 设定的文件锁、记录锁)、futex(基于共享内存的快速用户态互斥锁)。针对线程(pthread)的还有 pthread_mutex 和 pthread_cond(条件变量)。
除了这些特定的同步对象之外,还有一些同步方法是与通信方法不可分离的,包括:对 pipe/FIFO/socket 和 msg queue 的阻塞等待、对子进程退出事件的等待(wait族)、对线程退出时间的等待(pthread_join) |