随笔分类 -  线程

摘要:线程池原理篇幅太长,所以博主分为上、下两章节讲解,望有兴趣的朋友慢慢阅读~ 什么是线程池 在 Java 中,如果每个请求到达就创建一个新线程,创建和销毁线程花费的时间和消耗的系统资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。如果在一个 Jvm 里创建太多的线程,可能会使系统由于 阅读全文
posted @ 2020-06-12 14:09 47号Gamer丶 阅读(205) 评论(0) 推荐(0)
摘要:CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续工作。 CyclicBarrier 默认的构造方法是 CyclicBar 阅读全文
posted @ 2020-06-10 11:54 47号Gamer丶 阅读(251) 评论(0) 推荐(0)
摘要:semaphore 也就是我们常说的信号灯,semaphore 可以控制同时访问的线程个数,通过 acquire 获取一个许可,如果没有就等待,通过 release 释放一个许可。有点类似限流的作用。叫信号灯的原因也和他的用处有关,比如某商场就 5 个停车位,每个停车位只能停一辆车,如果这个时候来了 阅读全文
posted @ 2020-06-10 11:08 47号Gamer丶 阅读(181) 评论(0) 推荐(0)
摘要:今天博主来讲解下J.U.C下的countdownlatch,它 是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完毕再执行。从命名可以解读到 countdown 是倒数的意思,类似于我们倒计时的概念。countdownlatch 提供了两个方法,一个是 countDown,一个 阅读全文
posted @ 2020-06-08 23:42 47号Gamer丶 阅读(205) 评论(0) 推荐(0)
摘要:问题 (1)volatile是如何保证可见性的? (2)volatile是如何禁止重排序的? (3)volatile的实现原理? (4)volatile的缺陷? 简介 volatile可以说是Java虚拟机提供的最轻量级的同步机制了,但是它并不容易被正确地理解,以至于很多人不习惯使用它,遇到多线程问 阅读全文
posted @ 2020-06-03 10:35 47号Gamer丶 阅读(284) 评论(0) 推荐(0)
摘要:本文导航: 获取锁 释放锁 公平锁与非公平锁 ReentrantLock 与 synchronized 的区别 参考资料 ReentrantLock,JUC提供的可重入锁,是一种递归无阻塞的同步机制。 它可以等同于 synchronized 的使用,但是提供了比 synchronized 更强大、更 阅读全文
posted @ 2020-06-03 10:24 47号Gamer丶 阅读(147) 评论(0) 推荐(0)
摘要:本篇主要是对Java并发中synchronized关键字进行较为深入的探索,这些知识点结合博主对synchronized的个人理解以及相关的书籍的讲解(在结尾参考资料),如有误处,欢迎留言。 本文导航: synchronized的三种应用方式 synchronized作用于实例方法 synchron 阅读全文
posted @ 2020-06-03 10:15 47号Gamer丶 阅读(145) 评论(0) 推荐(0)