并发编程
Crazy丶Mark
这个作者很懒,什么都没留下…
展开
-
为什么wait,notify和notifyAll要与synchronized一起使用?
Object.wait(),Object.notify(),Object.notifyAll()都是Object的方法,换句话说,就是每个类里面都有这些方法。Object.wait():释放当前对象锁,并进入阻塞队列Object.notify():唤醒当前对象阻塞队列里的任一线程(并不保证唤醒哪一个)Object.notifyAll():唤醒当前对象阻塞队列里的所有线程为什么这三个...原创 2018-02-09 21:00:47 · 8774 阅读 · 12 评论 -
基于ThreadLocal的无锁并发发号器实现
ThreadLocal是一个线程级别的变量副本,它是对于线程隔离的,各个线程之间不能访问非自己的ThreadLocal变量。我们先来分析一下一个优秀的ID应该具备哪些特点?全局唯一性有序性能够包含一些信息(比如说时间信息、生成机器信息等)为了保证ID的全局唯一,在生成的时候我们应该对其做一些并发安全的处理,不然很可能就会出现重复ID,比如说ID的序列号是递增的,那么如何去保证在多线程...原创 2018-09-29 10:04:32 · 444 阅读 · 2 评论