各位看官们,大家好,上一回中咱们说的是线程间通信的例子,这一回咱们说的例子是:线程同步。闲话休提,言归正转。让我们一起talk C栗子吧!
看官们,提到同步,我想大家都不陌生,因为我们在前面章回中介绍过进程同步的内容。大家都知道线程是轻量级的进程,虽然线程不像进程一样需要专门的通信机制,但是线程需要专门的同步机制。今天我们来介绍一下线程同步的内容。
同步的含义对于进程和线程是相同的,只是进程和线程实现同步的方式不相同。关于同步的含义,我们就不做详细的介绍了,如果大家忘记了,可以点击这里查看前面章回的内容。
通常有两种方法来实现线程同步:
- 信号量
- 互斥量
信号量机制是由计算机科学家迪杰斯特拉提出的,我们在前面介绍过,因此不再做详细的介绍。该机制实现同步的核心操作是对信号量的P/V原子操作。该机制和我们在前面章回中介绍进程同步时提到的信号量是相同的。如果大家忘记了,可以点击这里查看前面章回的内容。我们说的相同是指同步的理论在进程和线程中都可以使用,不过具体的实现方式不同,我们在后面的章回中会详细介绍。
互斥量机制是指线程访问某个临界区域前先执行锁操作,当线程完成对临界区域的操作后,再执行解锁操作。被锁住的临界区域只能被锁它的线程使用,直到临界区域被解锁后,它才能被其它线程访问。互斥量机制是专门针对线程同步的一种机制,在进程同步中没有该机制。我们在后面的章回中会详细介绍该机制。
各位看官,关于线程同步概述的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解 。