在使用多线程时,一般很少有多个线程完全独立的工作。往往是多个线程同时操作一个全局变量来获取程序的运行结果。多个线程同时访问同一个全局变量,如果都是读取操作,则不会出现问题。如果是写操作,则会发生错误。这时候,我们可以通过临界区,为全局变量设置一个保护,保证同时只有一个线程可以访问此变量,其他变量进入等待状态。
临界区(Critical Section)是一段独占对某些共享资源访问...
分类:
编程语言 时间:
2014-05-14 00:10:15
阅读次数:
399
Person's solution 是用来一种基于软件的解决关键区域问题的算法(critical-section).
它并非完美的,有可能不正确地工作。而且是限制解决两个进程同步的问题。
但是它很简单,很原始,学习起来也是很轻松的。
代码如下:
do {
flag[i] = true;
turn = j;
while (flag[j] && turn == j...
分类:
编程语言 时间:
2014-05-13 08:01:01
阅读次数:
407
前面博客讲了互斥量(MUTEX)和关键段(CRITICAL
SECTION)的使用,想来总觉不妥,就如盲人摸象一般,窥其一脚而言象,难免以偏概全,追加一篇博客查遗补漏。 win32下的线程同步技术分为用户模式下的线程同步和用内核对象进行线程同步两大类。用户模式下的线程同步和用内核对象进行线程同步有....
分类:
编程语言 时间:
2014-05-09 02:58:18
阅读次数:
451