当我们的程序中创建了额外的线程时,即除默认的主线程外,还有其它的线程,这个时候,我们可能要让各个线程同步,常用的方法,有临界区域,互斥量,信号量,事件对象,可等待的计时器等,那大家知道线程同步的实质是什么吗?一个线程要让自己与其它线程同步,就得让自己睡眠,也就是线程同步的实质是睡眠,再睡眠后,操作系统不在为其调度CPU时间,因此它就停止了执行;线程在睡眠之前会告诉操作系统,要让自己停止睡眠,必须等到某种特殊的事情发生,然后操作系统重新为其调度CPU时间,这个时候线程就又能执行了,而这里我们说的特殊事情,就是前面说的几种同步方法,其中,除第一种外,其它都是内核对象,操作系统会清理它,保证不会出现死锁的情况,而临界区域如果不正常释放,就会出现死锁的情况。
线程同步的实质
最新推荐文章于 2021-07-30 08:03:12 发布