JAVA并发笔记: JDK发展史: JDK1.0:提供了一个纯解释的Java虚拟机实现 JDK1.3:把Java技术体系拆分为3个方向,J2SE,J2EE,J2ME,并且Java虚拟机第一次内置了JIT JDK1.4:增加正则表达式,异常链,NIO,日志类,XML解析器和XSLT转换器等 JDK1. ...
分类:
编程语言 时间:
2017-02-14 17:49:22
阅读次数:
425
两种锁的加锁原理 互斥锁:线程会从sleep(加锁)——>running(解锁),过程中有上下文的切换,cpu的抢占,信号的发送等开销。 自旋锁:线程一直是running(加锁——>解锁),死循环检测锁的标志位,机制不复杂。 两种锁的区别 互斥锁的起始原始开销要高于自旋锁,但是基本是一劳永逸,临界区 ...
分类:
其他好文 时间:
2017-02-14 13:58:29
阅读次数:
152
个人理解: 信号量(进程间的通信机制(单一个数的信号),与消息邮箱,消息队列,机理类同,量不同,)用信号量肯定掉cpu; 自旋锁:保护区域不掉cpu,持续查找,等待(不可用时域长状态); 切记: 时域范围: 在进程间的通信机制函数状态 ∩ 锁 = 0; 互斥锁与自旋锁 互斥锁:线程会从sleep(加 ...
分类:
其他好文 时间:
2017-02-14 13:56:05
阅读次数:
145
epoll的红黑树由一个互斥量保护,ready list是自旋锁保护的。 ready list涉及到add\mod\wait 红黑树涉及到add\mod\del 每一个epoll对象都有一个独立的eventpoll结构体,用于存放通过epoll_ctl方法向epoll对象中添加进来的事件。这些事件都 ...
分类:
其他好文 时间:
2017-02-13 12:28:32
阅读次数:
157
1、原子属性: 1-1、nonatomic与atomic: nonatomic : 非原子属性; atomic : 原子属性; 线程安全的,针对多线程设计的属性修饰符,是默认值. 保证同一时间只有一个线程能够写入,但是同一个时间多个线程都可以读取; 单写多读 : 单个线程写入write,多个线程可以 ...
分类:
移动开发 时间:
2017-02-05 15:17:32
阅读次数:
260
访问共享资源的代码区块叫“临界区”,临界区需要以某种互斥机制加以保护:自旋锁、信号量等。互斥访问:一个执行单元在访问共享资源的时候,其他的执行单元被禁止访问。 信号量:在Liunx中的信号量是一种睡眠锁。假如进程A先持有信号量F,然后进程B试图获取已经被进程A持有的信号量F时(假如信号量F资源值为1 ...
分类:
系统相关 时间:
2017-01-19 02:50:52
阅读次数:
191
阿里一面:1. 入场就是红黑树,B数2. apache和nginx源码看过多少,平时看过什么技术论坛,还有没有看过更多的开源代码3. pthread 到自旋锁4. hadoop源码看过没5. 为什么选择TCP而不是直接用服务器6. 你们的大数据怎么处理的,还怎么优化,说了个公司业务决定分布式是不可能 ...
分类:
其他好文 时间:
2017-01-08 13:16:40
阅读次数:
174
今天,没错又是今天,今天做的事情还真是多呢~还修了洗衣机,貌似除了写代码不行,样样都行了呢~ 好了,言归正传。今天在浏览一个网页时,鼠标滑过它的图片,出现了一种我感觉很酷炫的效果。像这样: 自己感受下~ 怎么样,有没有觉得很有趣~ 原网页上的代码没有发现它全部的实现原理。 上边这个是我根据它的部分自 ...
分类:
其他好文 时间:
2017-01-07 21:13:05
阅读次数:
213
目标:实现同一时刻只能有一个进程使用同一个设备,例如:只能有一个进程,在同一时刻里使用/dev/buttons这个设备。 使用linux互斥机制实现同一时刻只能有一个进程使用某个设备。 linux互斥机制有原子变量、互斥锁、信号量、自旋锁、读写锁等等 一、原子操作: 原子操作指的是在执行过程中不会被 ...
分类:
其他好文 时间:
2017-01-06 13:03:44
阅读次数:
188
今天看wiki,看到一个提到什么什么会陷入 race condition & ABA problem。丫的我没听过ABA呀,那么我去搜了一下,如下: http://www.bubuko.com/infodetail-317006.html 《SpinLock 自旋锁, CAS操作(Compare & ...
分类:
其他好文 时间:
2017-01-05 23:56:21
阅读次数:
371