17-习题
53.8 习题
53-1. 将程序清单48-2和程序清单48-3中的程序(48.4节)重写一个多线程应用程序,其中两个线程之间通过一个全局缓冲区来向对方传递数据并使用POSIX信号量来同步操作。
53-2. 修改程序清单53-3中的程序(psem_wait.c)使之使用sem_timedwait()来替代sem_wait()。这个程序应该接收一个额外的命令行参数来指定一个(相对)秒数以作为sem_timedwait()调用中的超时时间。
53-3. 使用System V信号量来设计POSIX信号量的一个实现。
53-4. 在53.5节中指出过POSIX信号量在信号量争夺不激烈的情况下的性能要比System V信号量好很多。编写两个程序(分别使用这两种信号量)来验证这个结论。每个程序都应该将一个信号量递增和递减指定的次数。比较执行两个程序所需的时间。