线程安全之锁
chenlin1003
这个作者很懒,什么都没留下…
展开
-
JAVA同步器——ReentrantLock
清晰的记录,不辜负此刻的青春,日后的完善,成就更美好的未来 concurrent包结构 最底层: volatile变量:volatile保证变量在内存中的可见性。java线程模型包括线程的私有内存和所有线程的公共内存,这与cpu缓存和内存类似。线程对变量进行操作的时候一般是从公共内存中拷贝变量的副本,等修改完之后重新写入到公共内存,这存在并发风险。而被volatile标注的变量通过CPU...转载 2019-06-05 10:01:36 · 124 阅读 · 0 评论 -
java高并发之Semaphore
一,自己的理解 semaphore 一般可以用作限流,是线程共享模式,初始化时,会传入一个int i类型的数值(可以当作票据),多个线程并发访问时,就会控制初始化的i个线程同时访问,其他线程进入队列进行阻塞,当拿到票据的线程执行完之后,就会释放票据,同时也会唤醒队列进行阻塞的线程,被唤醒的线程与还没有进入对列的线程会抢夺资源,如此循环。 二,源码分析 class Semaphore { /...原创 2019-07-31 10:10:02 · 174 阅读 · 0 评论