
java并发-JUC
文章平均质量分 81
白鹤青洲依旧
这个作者很懒,什么都没留下…
展开
-
Java-JUC
1 什么是JUC就是java.util包下面的三个工具类2 进程与线程一个进程往往可以包含多个线程,至少包含一个,java默认2个线程,一个main线程,一个GC线程java 不能开启进程,开启进程是要调用本地方法,java是运行在虚拟机上的没有权限开启进行。2.1并发与并行并发–多个线程操作同一个资源单核,模拟出来的多线程,交替执行并行–多个线程可以同时执行线程池并发编程的本质:充分利用CPU的资源2.2 线程状态new Thread.State(); public enum原创 2021-11-30 14:44:16 · 319 阅读 · 0 评论 -
Java并发之-ConcurrentHashMap
请问有读过ConcurrentHashMap源码吗?知道它用了哪些锁吗?CAS与synchronized来保证线程安全。ConcurrentHashMap怎么做到高效有线程安全的????HashTable每个方法都是用了synchronized同步代码快所以效率低。3.1 初始化方法/**-1:表示有线程正在进行真正的初始化操作-(1+nThreads):表示有nThreads个线程正在进行扩容操作>0:表示接下来的初始化操作中使用的容量,或者初始化/扩容完成后的threshold=原创 2021-11-28 13:32:48 · 365 阅读 · 1 评论 -
Java并发-ReentrantLock
什么是ReentrantLock?1、ReentrantLock可重入锁:一个线程获取了锁,当它想再次想获取锁的时候不用等待可以直接获取锁;2、公平锁:按请求锁的顺序分配,保证线程会获取锁,性能比公平锁低;2、非公平锁:不按照请求锁的顺序分配,不保证线程会获取锁,性能比公平锁高;ReentrantLock是基于AQS,在并发编程中它可以实现公平锁和非公平锁来对共享资源进行同步,同时,和synchronized异常,ReentrantLock至此可重入,除此之外ReentrantLock在调度上更加原创 2021-11-28 13:15:55 · 157 阅读 · 0 评论 -
Java并发-AbstractQueuedSynchronizer并发框架
AQS(AbstractQueuedSynchronizer)AQS是一个同步框架,框架具有的特性1、通用性,下层实现透明的同步机制,同时与上层业务解耦2、利用CAS,原子的修改共享标记位3、等待队列:两种业务场景,1、线程只想尝试获取锁,如果没有获取到就干其他的事情,2、有的业务一定要获取到共享资源才能进行下一步处理,如果当前时刻没有获取到锁它愿意等待。第二种情况就设计一个等待队列。线程获取锁的两种方式,独占和共享独占模式:一旦获取锁,其他线程不能占用共享模式:其他线程在共享的模式下可以继原创 2021-11-28 11:00:19 · 348 阅读 · 0 评论