多线程-并发
文章平均质量分 52
多线程-并发
Java超神之路
这个作者很懒,什么都没留下…
展开
-
多线程-顺序执行
1.多线程如何保证顺序执行[1] 使用线程的join方法[2] 使用主线程的join方法[3] 使用线程的wait方法[4] 使用线程的线程池方法[5] 使用线程的Condition(条件变量)方法[6] 使用线程的CountDownLatch(倒计数)方法[7] 使用线程的CyclicBarrier(回环栅栏)方法[8] 使用线程的Semaphore(信号量)方法1.1用CompletableFuture只能保证线程执行顺序,不保证输出结果是顺序的public class Thr原创 2022-03-11 21:09:15 · 1122 阅读 · 0 评论 -
JMM内存模型
可见性原子性有序性volatile只保证可见性,和有序性,不保证原子性volatile会禁止指令重排MESIJMM-CPU缓存一致性协议假如现在只有一个线程用到变量x,那他的状态就是独占假如现在有其他线程用到变量x,状态改变,有E(独占)→S(共享),此时得保证一致性这是就引入缓存行,加lock锁缓存行,通过总线裁决,失败的状态改成I(已失效)...原创 2022-02-14 23:54:24 · 135 阅读 · 0 评论 -
并发编程之synchronized
1.设计同步的意义2.如何解决线程同步安全?3.synchronized原理详解4.synchronized底层原理5.Monitor监视器锁6.什么是Monitor7.对象的内存布局8.锁的膨胀升级过程原创 2022-02-15 16:27:52 · 128 阅读 · 0 评论 -
CountDownLatch例子
1异步RPC常用到例如rocktemq中启动borker时类BrokerOuterAPInameServerAddressList里都要注册到,用CountDownLatch等都注册了在返回,并且countDownLatch.await(timeoutMills, TimeUnit.MILLISECONDS);设置了超时时间不会一直等待。final CountDownLatch countDownLatch = new CountDownLatch(nameServerAddressList.siz原创 2022-02-16 18:08:41 · 127 阅读 · 0 评论 -
ThreadLocal
123原创 2022-02-24 14:12:38 · 145 阅读 · 0 评论 -
线程死锁及解决方案
线程死锁的四个必要条件如果在一个系统中以下四个条件同时成立,那么就能引起死锁:互斥性:线程对资源的占有是排他性的,一个资源只能被一个线程占有,直到释放。请求和保持条件:一个线程对请求被占有资源发生阻塞时,对已经获得的资源不释放。不剥夺:一个线程在释放资源之前,其他的线程无法剥夺占用。循环等待:发生死锁时,线程进入死循环,永久阻塞。解决方法:互斥性,可用ThreadLocal请求和保持条件,踢掉一个(结束一个)不剥夺,trylcok,加个超时时间,抢不到释放资源分布式锁,可以用DB原创 2022-02-23 13:24:11 · 3118 阅读 · 0 评论 -
线程池解析
线程池1.ThreadPoolExecutorpublic ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runn原创 2021-04-19 22:59:48 · 163 阅读 · 0 评论