并发编程
文章平均质量分 60
booynal
这个作者很懒,什么都没留下…
展开
-
记录一次生产问题:当线程池打满,CallerRunsPolicy这个策略导致主调线程ThreadLocal变量丢失
自己实现接口,在内部直接调用任务的run方法。if(!// 调用执行之前先保留线程本地变量,因为run方法之后会清理线程本地变量 String oldUser = getUser();// 将执行任务之前的变量存回去 setUser(oldUser);} } } }原创 2023-02-21 23:12:24 · 1580 阅读 · 0 评论 -
Java指令重排测试类
场景二:单例模式的懒汉模式,DCL+volatile能保证不发生意外,但这里故意不加volatile,验证是否发生指令重排导致意外情况。场景一:两个线程分别对不同变量来回赋值,验证是否发生指令重排。总结了两个指令重排的场景,并编写代码实现了。原创 2023-02-19 21:53:47 · 233 阅读 · 1 评论