文件名称:线程安全和信号量-外军电台手册
文件大小:1.39MB
文件格式:PDF
更新时间:2024-06-27 16:33:58
objective-c ios
4.3 线程安全和信号量 当涉及到多线程应用程序时,没有什么比处理信号量更令人恐惧和困惑的了。信 号量是底层 BSD机制,它可以用来传递信息给进程或以某种方式操纵它。一些应用程 序使用信号量来检测特定事件,比如子进程的消亡。系统使用信号量来终止失控进程, 和作为其他类型的通信消息。 使用信号量的问题并不是你要做什么,而是当你程序是多线程的时候它们的行 为。在当线程应用程序里面,所有的信号量处理都在主线程进行。在多线程应用程序 里面,信号量被传递到恰好运行的线程,而不依赖于特定的硬件错误(比如非法指令)。 如果多个线程同时运行,信号量被传递到任何一个系统挑选的线程。换而言之,信号 量可以传递给你应用的任何线程。 在你应用程序里面实现信号量处理的第一条规则是避免假设任一线程处理信号 量。如果一个指定的线程想要处理给定的信号,你需要通过某些方法来通知该线程信