首页 > 代码库 > 一起talk C栗子吧(第一百一十二回:C语言实例--线程同步概述)

一起talk C栗子吧(第一百一十二回:C语言实例--线程同步概述)


各位看官们,大家好。上一回中咱们说的是线程间通信的样例,这一回咱们说的样例是:线程同步。闲话休提,言归正转。让我们一起talk C栗子吧!

看官们,提到同步。我想大家都不陌生,由于我们在前面章回中介绍过进程同步的内容。

大家都知道线程是轻量级的进程,尽管线程不像进程一样须要专门的通信机制,可是线程须要专门的同步机制。

今天我们来介绍一下线程同步的内容。

同步的含义对于进程和线程是同样的。仅仅是进程和线程实现同步的方式不同样。关于同步的含义,我们就不做具体的介绍了,假设大家忘记了,能够点击这里查看前面章回的内容。

通常有两种方法来实现线程同步

  • 信号量
  • 相互排斥量

信号量机制是由计算机科学家迪杰斯特拉提出的,我们在前面介绍过,因此不再做具体的介绍。

该机制实现同步的核心操作是对信号量的P/V原子操作。该机制和我们在前面章回中介绍进程同步时提到的信号量是同样的。假设大家忘记了,能够点击这里查看前面章回的内容。我们说的同样是指同步的理论在进程和线程中都能够使用,只是具体的实现方式不同。我们在后面的章回中会具体介绍。

相互排斥量机制是指线程訪问某个临界区域前先运行锁操作,当线程完毕对临界区域的操作后。再运行解锁操作。被锁住的临界区域仅仅能被锁它的线程使用,直到临界区域被解锁后,它才干被其他线程訪问。相互排斥量机制是专门针对线程同步的一种机制,在进程同步中没有该机制。我们在后面的章回中会具体介绍该机制。

各位看官。关于线程同步概述的样例咱们就讲到这里。

欲知后面还有什么样例,且听下回分解 。


<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

一起talk C栗子吧(第一百一十二回:C语言实例--线程同步概述)