经典同步问题
读者写者问题
有一个可以读写的文件,我们把读文件的进程当做“读者”,写文件的进程当做“写者”。写者和任何进程互斥;读的时候不允许写。
方案一:
写进程:设置一个mutex _rw
读进程:count 变量互斥访问;mutex_rw,当 count == 0,即第一个读进程读共享文件时,不让写进程读。
但是这个方案中 读进程是优先的,写进程可能会别饿死。
方案二:设置 mutex_w,无论读写都要申请这个互斥信号量,实现读写公平。
哲学家进餐问题
怕出现死锁。
解决方案:当且仅当两边都能获取到才可以真正拿起筷子。
编号,计数哲学家先拿左边,偶数哲学家先拿右边。