一、相关概念:临界资源:多个进程能够访问的资源临界区:访问临界资源的一段代码互斥:独占临界资源同步:带着顺序性的进程运行,(大部分)建立在互斥的情况下二元信号量:相当于一把互斥锁二、线程互斥1、造成干扰:进程进行均匀切换2、互斥量(mutex):加锁:变为原子返回值..
分类:
编程语言 时间:
2016-04-20 18:12:30
阅读次数:
216
LocatedFileStatusFetcher通过多线程的方式,实现了针对给定输入路径数组,使用配置的线程数目来获取数据块位置的核心功能。它通过google的可监听并发技术ListenableFuture、ListeningExecutorService,实现了两层级别的子任务的并发执行、结果监听与回调处理,还使用了可重入互斥锁ReentrantLock、多线程间协调通信工具Condition来解决多线程之间的并发同步问题,特别是主任务线程与子任务线程间的主从协调、通信等。...
分类:
其他好文 时间:
2016-04-20 16:27:44
阅读次数:
209
参考:http://www.cnblogs.com/ronny/p/3745098.html 资源:动态分配的内存、文件描述器、互斥锁、图形界面中的字型与笔刷、数据库连接以及网络sockets等, 无论哪一种资源,重要的是,当你不再使用它时,必须将它还给系统。 条款13:以对象管理资源 当我们向系统 ...
分类:
编程语言 时间:
2016-04-18 17:14:35
阅读次数:
200
一、mutex互斥量同步:就是对资源的访问有序。互斥:就是任一时刻来说只有一个在执行;但是对于多线程的程序来说,访问冲突的问题是很普遍的,解决的办法是引入互斥锁(Mutex,MutualExclusiveLock),获得锁的线程可以完成“读-修改-写”的操作,然后释放锁给其它线程,没有获得锁的线..
分类:
编程语言 时间:
2016-04-17 23:27:37
阅读次数:
299
多线程共享一个进程的地址空间虽然线程间通信容易进行,但是多线程同时访问共享对象时需要引入同步和互斥机制。1.线程间的互斥,引入互斥锁的目的是用来保证共享资源数据操作的完整性。互斥锁主要用来保护临界资源,每个邻界资源都由一个互斥锁来保护,任何时刻最多只能有一个..
分类:
编程语言 时间:
2016-04-17 18:00:52
阅读次数:
179
多线程中的三种数据: 全局变量, 局部变量, 线程数据(TSD: thread-specific data) TSD: “属于某个线程的全局变量” 线程数据(tsd)的使用: 和线程数据相关的函数主要有4个:创建一个键;为一个键指定线程数据;从一个键读取线程数据;删除键。 互斥锁: 保证一次只有一个 ...
分类:
编程语言 时间:
2016-04-16 14:00:58
阅读次数:
161
共享内存可以说最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A,B共享内存的意思是,同一块物理内存被映射到进程A,B各自的进程地址空间。进程A可以及时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和..
分类:
其他好文 时间:
2016-04-14 22:40:58
阅读次数:
269
信号量与简单互斥锁的实现信号量:与管道和消息队列不同,信号量可以说是一个计数器,它用来控制多进程对临界资源的访问,它作的是PV操作,P为减一操作,它是用来获取临界资源的使用权,如果减一之后大于零则可以访问,不然就挂起等待,V为加一操作,当进程对他的访问结束后便..
分类:
系统相关 时间:
2016-04-14 22:40:14
阅读次数:
322
一、什么是同步 多个线程按照规定的顺序来执行,即为线程同步。 1.1线程同步方式一 通过互斥锁的方式实现线程同步,可以实现但是执行效率比较低(sync.c) 1.2线程同步方式二 使用条件变量,可以使CPU利用率提高(sync1.c) 1.3条件变量 初始化: 等待条件成熟: 设置条件成熟: ...
分类:
编程语言 时间:
2016-04-12 00:23:54
阅读次数:
206