![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 75
gosling1024
不积跬步,无以至千里.不积小流,无以成江海
展开
-
CountDownLatch和CyclicBarrier的区别
CountDownLatch、CyclicBarrier、Semaphore、Exchanger1.CountDownLatch:等待多线程完成的工作模式,允许一个或多个线程等待其他线程完成操作2. CyclicBarrier:同步屏障,“循环使用的屏障”,让一组线程到达一个屏障(同步点)时被阻塞,直到最后一个线程到达时,所有被屏障拦截的线程才会继续执行3.Semaphore:信号量,用来控制同时访问特定资源的线程数量,应用场景是:用于做流量控制,特别是公用资源有限的场景,例如:数据库连接,..原创 2021-01-03 17:35:15 · 378 阅读 · 0 评论 -
如何正确的使用多线程
最近在工作的时候跟一个同事A合作了几个业务点,发现A用了多线程做优化,发现了几点问题,做一下记录1. A 使用多线程时,在方法中创建了自己的线程池2. 线程池的大小、队列设置不合理3. 使用多线程后对业务产生的影响下面逐一讨论下浅见:1. 对于一些程序员来说,在业务中随处使用线程池,也就是自己创建自己的线程池,这种方式没有根本上的错误,但这造成了哪些影响呢。首先我认为对线程池的使用应该是谨慎小心的,对于单个接口、业务来说,多线程处理可以解决接口处理大量数据、复杂业务缓慢的问题,但我.原创 2021-01-02 19:32:47 · 710 阅读 · 0 评论 -
并发编程
volatilevolatile是轻量级的synchronized,在多处理器开发中保证了共享变量的“可见性”,可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。volatile的定义和实现原理定义:java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独的获得这个变量。java定义了volatile,如果一个字段被声明...原创 2019-01-28 17:12:56 · 88 阅读 · 0 评论