多线程系列
文章平均质量分 55
念殊15
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
在new对象中,使用spring bean对象2021-10-23
一、背景https://www.jianshu.com/p/4c0723615a52创建ApplicationContextUtil,是为了能在java new的对象中,使用getBean方法,方便获取bean对象。二、用法/**@Lazy(value=true)使用该对象的时候再加载ApplicationContextUtil会减少springIoc启动时候消耗的时间**/@Component@Lazy(value=true)public class ApplicationConte原创 2021-10-23 15:28:17 · 950 阅读 · 0 评论 -
CountDownLatch的使用(简略总结)
文章目录Q:为什么要使用CountDownLatch?Q:为什么要使用CountDownLatch?有两个原因(1)可以将异步操作转换为同步,为线程的执行安排顺序案例是:主线程和异步子线程,比如主程序等待整个框架服务启动环境配置好后,再启动服务。(2)实现多个线程开始执行任务的并行性,并行性,指的是多个线程在同一时间执行,比如同时开始执行一个计算任务。具体参考:链接描述...原创 2021-06-29 13:50:23 · 150 阅读 · 0 评论 -
ThreadLocal变量的使用
这里写自定义目录标题Q:为什么要使用ThreadLocal?ThreadLocal该怎么使用?创建两个类ThreadLocal的原理Q:为什么要使用ThreadLocal?可以让多个线程共享一个变量,使用该变量的值,但是没有办法做到变量的同步。ThreadLocal该怎么使用?一个简单的小例子创建两个类MyRunnable:package com.kk.ThreadLocalTest;public class MyRunnable implements Runnable{ //原创 2021-06-29 11:41:31 · 626 阅读 · 0 评论 -
延迟初始化带来的并发错误
目录,Q:为什么会出现延迟初始化Q:延迟初始化带来的并发错误是什么?A:有两种解决方案解决方案1.使用volatile禁止重排序解决方案2.基于类的初始化的同步机制(扩展)那么哪时候会进行类的初始化呢?(详解)类初始化中的同步处理机制第一阶段(竞争获得初始化锁)第二阶段(进行类的初始化和静态变量的初始化)第三阶段:线程A设置class的state为initialized,并唤醒锁中condition中的所有线程,释放持久化锁第四阶段:线程B结束类的初始化处理过程(说明)解决方案2的使用场景Q:为什么会出现原创 2021-06-27 17:09:18 · 238 阅读 · 0 评论
分享