多线程
文章平均质量分 78
zcl_1991
2008年感动中国人物特别奖获得者
美国时代周刊2006年度人物获得者
展开
-
浅看ThreadLocal
看了下ThreadLocal的源码,对这个有了一个基本的了解。 只简单的追了一下源码,解析得不到位,各位要深入了解的可以看看源码和看看大佬的解析。 ThreadLocal提供了线程的局部变量,让每个线程通过get/set来操作这个局部变量;不会和其他线程的局部变量冲突,实现线程的数据隔离。 主要涉及到4个类,分别是:Thread、ThreadLocal、ThreadLocalMap、Entry。 其中ThreadLocalMap是ThreadLocal的静态内部类,Entry是ThreadLocalMap的原创 2021-12-16 17:44:23 · 99 阅读 · 0 评论 -
常用的线程同步工具
在java.util.concurrent包下有很多线程相关的类,其中CountDownLatch、CyclicBarrier、Semaphore算是比较常用的,其它的还有Phaser、Exchanger…等等。 只是几个工具类的简单使用,原理请大家自行搜索。 CountDownLatch 定义是允许一个或多个线程一直等待,直到其他线程完成他们的操作,其再继续执行。 常用API : await()、countDown(); 举个例子(可能不太恰当): 麻将铺老板,现在他铺子里有4个人在打麻将, CountD原创 2021-12-16 16:20:08 · 198 阅读 · 0 评论 -
通过注解执行异步任务
看了很多资料,然后整理了自己需要的内容。 注解:@Async看了很多资料,然后整理了自己需要的内容。 1.启动类或者配置类上添加开启异步的注解:@EnableAsync; 2.编写要异步执行的方法; 如果没有自己配置线程池,则会用自带的默认线程池(SimpleAsyncTaskExecutor)去执行异步任务; 如果有自己配置线程池,则会用自己的线程池去执行异步任务;如果自己配置了多个线程池,可以在注解@Async中指定使用哪个线程池。 需要注意的是:需要异步执行的方法,与调用它的方法不要在同一个类中。原创 2020-06-12 14:27:09 · 176 阅读 · 0 评论