所谓critical sections 意指一小块“用来处理一份被共享之资源”的程序代码。你可能必须在程序的许多地方处理这一块可共享的资源。所有这些程序代码可以被同一个critical section 保护起来。为了阻止问题发生,一次只能有一个线程获准进入critical section 中.cri...
分类:
编程语言 时间:
2014-07-18 15:03:55
阅读次数:
308
关于线程,有两种实现方法, 一种是通过继承Runnable接口,另外一种通过扩展Thread类,两者的具体差别,可参考我找的这篇文章 http://www.cnblogs.com/rollenholt/archive/2011/08/28/2156357.html。本主主要是讲 线程的同步执行问题。...
分类:
编程语言 时间:
2014-07-16 21:48:14
阅读次数:
172
原子锁(原子访问):一个线程在访问某个资源的同时必须确保其他线程不会同时访问此资源。没有实现原子锁的结果://定义一个全局变量long g_lx = 0;DWORD WINAPI ThreadFunc1(PVOID pvParam){ for( int index=0; index<10000...
分类:
编程语言 时间:
2014-07-16 19:11:21
阅读次数:
220
阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经典线程同步相互排斥量Mutex》前面介绍了关键段CS、事件Event、相互排斥量Mutex在经典线程同步问题中的使用...
分类:
编程语言 时间:
2014-07-15 08:39:59
阅读次数:
276
来自:http://www.cnblogs.com/taven/category/475298.html 1 import java.util.concurrent.CountDownLatch; 2 import java.util.concurrent.ExecutorService; 3 im...
分类:
编程语言 时间:
2014-07-14 20:49:33
阅读次数:
298
这里我有一个简单的思路,来源于去年应届生找工作做大量的名企笔试题里他人的技巧。
多线程的测试使用cout是不靠谱的,因为多个线程使用cout很容易产生混乱的输出,而且耗时。
多线程的测试往往需要知道多个线程同时运行的时候对某个共享区域的使用是否正确,为了检验正确性,比较好的测试用例就是:递增的整数序列
递增的整数序列中的每一个整数都对应一个线程的动作,最后我们将这些整数再当成...
分类:
编程语言 时间:
2014-07-14 18:14:34
阅读次数:
325
来自:http://www.cnblogs.com/taven/archive/2011/12/17/2291474.html 1 import java.util.ArrayList; 2 3 import java.util.concurrent.ExecutorService; 4 ...
分类:
编程语言 时间:
2014-07-14 15:46:33
阅读次数:
221
首先大家要了解 dispatch_queue 的运作机制及线程同步
我们可以将许多 blocks 用 dispatch_async 函数提交到 dispatch_queue ,如果类型是DISPATCH_QUEUE_SERIAL (串行),那么这些 block 是按照 FIFO (先入先出)的规则调度的,也就是说,先加入的先执行,后加入的一定后执行,但在如果类型是DISPATCH_QUEUE_C...
分类:
编程语言 时间:
2014-07-13 16:56:40
阅读次数:
268
java线程 同步临界区:thinking in java4 21.3.5
thinking in java 4免费下载:http://download.csdn.net/detail/liangrui1988/7580155...
分类:
编程语言 时间:
2014-07-13 15:29:38
阅读次数:
257
众所周知,windows平台上实现线程同步,或者说资源的加锁与解锁的方法有内核事件、临界区、互斥量、信号量,甚至interlocked系列函数等多种手段。但是在日常的编程中,我们使用这些手段对 “多个线程同时对同一个资源进行读写”
的时候,在读写之前先要对资源假锁,读写完之后要对资源解锁。
设想这样一种情况,有一个ftp服务器,每天有很频繁的对这个ftp服务的文件进行下载,但是几乎好几天才会对...