计算机科学中, 同步(synchronization)是指两个不同但有联系的概念:进程同步与数据同步。进程同步指多个进程在特定点会合(join up)或者握手使得达成协议或者使得操作序列有序。数据同步指一个数据集的多份拷贝一致以维护完整性。常用进程同步原语实现数据同步。
线程或进程同步
)]]
多个线程(或进程)要执行同一个特定的不可重入的程序代码块(称为临界区),这就需要适当的并发控制同步技术。否则,可能会发生竞态条件。
另一种同步要求产生于特定的操作顺序,如应该先买机票然后登机。
同步还需处理:
- 死锁
- 资源饿死
- 优先级翻转
- 忙等待
经典同步问题
- 生产者消费者问题 (有限缓存区问题);
- ;
- 哲学家就餐问题.
参见
- Future与promise, 纯函数式编程中的同步机制
参考文献
*
外部链接
- [https://web.archive.org/web/20090209170415/http://ibm.com/developerworks/linux/library/l-linux-synchronization.html Anatomy of Linux synchronization methods] at IBM developerWorks
- [http://greenteapress.com/semaphores/ The Little Book of Semaphores], by Allen B. Downey
评论 (0)