在java.util.concurrent包中,有两个很特殊的工具类,Condition和ReentrantLock,使用过的人都知道,ReentrantLock(重入锁)是jdk的concurrent包提供的一种独占锁的实现。它继承自Dong Lea的AbstractQueuedSynchroni...
分类:
其他好文 时间:
2015-09-17 15:10:07
阅读次数:
270
前面一章我们简单介绍了如何使用QThread实现线程。现在我们开始详细介绍如何“正确”编写多线程程序。我们这里的大部分内容来自于Qt的一篇Wiki文档,有兴趣的童鞋可以去看原文。在介绍在以前,我们要认识两个术语:可重入的(Reentrant):如果多个线程可以在同一时刻调用一个类的所有函数,并且保证...
分类:
编程语言 时间:
2015-09-15 14:22:14
阅读次数:
253
说起消息重入队列还得从队列注册消费者说起,客户端在向队列注册消费者之后,创建的channel也会被主队列进程monitor,当channel挂掉后,主队列进程(rabbit_amqqueue_process)收到'DOWN'通知,将未ack的消息重入队列,并根据消息的deliver tag,也就是消...
分类:
其他好文 时间:
2015-09-02 08:13:05
阅读次数:
414
1.可重入锁如果锁具备可重入性,则称作为可重入锁。像synchronized和ReentrantLock都是可重入锁,可重入性在我看来实际上表明了锁的分配机制:基于线程的分配,而不是基于方法调用的分配。举个简单的例子,当一个线程执行到某个synchronized方法时,比如说method1,而在me...
分类:
其他好文 时间:
2015-08-27 13:02:06
阅读次数:
225
一:不安全的(不可重入性)inet_xxx()函数族由于计算机理解的IP都是以二进制形式保存的,那么在网络程序设计中经常会需要字符串IP和二进制IP的转换,linux系统有一组要用于网络地址转换的函数,如下: #include
#include
#include ...
分类:
系统相关 时间:
2015-08-25 16:53:06
阅读次数:
276
一:不安全的(不可重入性)inet_xxx()函数族
由于计算机理解的IP都是以二进制形式保存的,那么在网络程序设计中经常会需要字符串IP和二进制IP的转换,linux系统有一组要用于网络地址转换的函数,如下:
#include
#include
#include
int inet_aton(const char *cp, str...
分类:
系统相关 时间:
2015-08-25 14:15:46
阅读次数:
244
一次聊天,谈到了死锁的解决、可重入锁等等,突然发现这些离自己很远,只有一些读书时的概念涌入脑海,但各自的应用场景怎么都无法想出。痛定思痛,决定看看concurrent包里涉及并发的类及各自的应用场景。第一类:原子操作类的atomic包,里面包含了1)布尔类型的AtomicBoolean2)整型Ato...
分类:
编程语言 时间:
2015-08-11 13:34:48
阅读次数:
205
(重点 一个问题最令人关注的面试官。必须从cpu调度,上下文切换。数据共享,多核cup采用,脚印,等答案的方方面面。再有一个问题,即必须要问:这件事是一个私人的线程?答案必须列入登记册,否则,悲催)可重入:概念基本没有比較正式的完整解释。可是它比线程安全要求更严格。依据经验,所谓“重入”,常见的情况...
分类:
编程语言 时间:
2015-07-30 12:53:49
阅读次数:
119
come on !复习一下什么是信号的不可靠?think for a while ???信号的执行现场是内核帮我们布置的,so 如果一个信号正在执行一个行为,此时不好意思有来了一个这个信号,那么,第一次的行为将会被第二次的行为覆盖。解决信号的不可靠----> 可重入函数:第一次调用未结束,第二次调用...
分类:
其他好文 时间:
2015-07-20 01:08:33
阅读次数:
184