多线程
文章平均质量分 63
shibai906
软件专业学生,想做一个高可用的工程师
展开
-
线程池的使用、问题排查、源码分析等
线程池的核心参数、监控、问题排查、源码分析原创 2022-06-26 15:54:09 · 276 阅读 · 1 评论 -
CountDownLatch
关于CountDownLatch,我从以下几方面进行讲解:1、百度说明同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。即,一组线程等待某一事件发生,事件没有发生前,所有线程将阻塞等待;而事件发生后,所有线程将开始执行;闭锁最初处于封闭状态,当事件发生后闭锁将被打开,一旦打开,闭锁将永远处于打开状态。2、个人理解执行一件事情,需要等几件事情全部执行完之后才能执行这件事情。比如:要想执行A功能,需要等B、C、D全部执行完之后,再去执行A功能。3、代码示例public原创 2021-01-25 23:01:30 · 559 阅读 · 0 评论 -
如何创建一个线程
创建线程有以下几种方式!1、继承Thread创建public class CreateThreadTest { public static void main(String[] args) { Thread threadExtends = new ThreadExtends(); threadExtends.start(); // 注意,这里一定要使用start方法,它是启动线程的方法! }}class ThreadExtends extends T原创 2021-01-24 21:20:00 · 5822 阅读 · 0 评论 -
信号量(Semaphore)
我们从以下几点学习信号量1、信号量的作用,信号量是用来做什么的?它维护了一个许可集,我们在初始化时需要传一个许可集数量,该数量值代表同一时间能访问共享资源的线程数量。线程可以通过acquire()方法得到一个许可,然后对共享资源进行操作,如果许可集已经用完了,哪线程在这里等待,直到其他线程释放,它才有机会再次获得许可。线程释放通过release完成,“许可才能归还给semaphore”简单的理解为我这里有10个车位,每次过来最多有10辆车可以同时停车,当走了一辆车以后,我们才能停新的车辆!2、例原创 2021-01-18 23:33:41 · 702 阅读 · 2 评论 -
如使用两个线程交替打印A-Z
如使用两个线程交替打印A-Z使用锁不适用锁使用锁static char print = 'a';public static void main(String[] args) { new Thread(() ->{ synchronized (args) { // 锁的名称 while (print <= 'z') { ...原创 2019-10-06 19:21:24 · 504 阅读 · 0 评论