随笔分类 -  线程

摘要:Spring Boot使用 @Async 注解进行异步调用 创建异步调用线程池配置代码: import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configu 阅读全文
posted @ 2021-07-12 14:07 唐胜伟 阅读(117) 评论(0) 推荐(0)
摘要:线程通信原理图: 资源类: 成员变量赋值类: 打印成员变量值: 启动线程类: 阅读全文
posted @ 2019-10-24 23:01 唐胜伟 阅读(259) 评论(0) 推荐(0)
摘要:线程死锁原理图: 锁对象 LockA 锁对象 LockB Runnable接口实现死锁代码 运行死锁代码 阅读全文
posted @ 2019-10-24 22:40 唐胜伟 阅读(148) 评论(0) 推荐(0)
摘要:操作共享数据,线程不安全代码: 三个线程同时执行上面的任务: Thread-0 出售第 1 票Thread-2 出售第 0 票Thread-1 出售第 -1 票 分析: 备注:线程的执行并不是按照顺序执行的,哪个线程抢到CPU执行权限,就执行哪个线程,所以上面的线程名不是按照顺序的。 1.Threa 阅读全文
posted @ 2019-10-23 00:32 唐胜伟 阅读(578) 评论(0) 推荐(0)
摘要:线程类,执行的任务: 使用线程池方式执行上面的任务: 阅读全文
posted @ 2019-10-22 23:52 唐胜伟 阅读(1067) 评论(0) 推荐(0)
摘要:线程实现的三种方式 方式一,继承Thread类: 方式二,实现Runnable接口: 方式三、实现Callable<String>接口: 备注:a.此接口特点是有返回值; b.能抛出异常。 阅读全文
posted @ 2019-10-22 23:40 唐胜伟 阅读(272) 评论(0) 推荐(0)
摘要:手动创建一个线程池: Java通过Executors提供了四种线程池,这四种线程池都是直接或间接配置ThreadPoolExecutor的参数实现的; newFixedThreadPool(int nThreads) 创建一个固定长度的线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量 阅读全文
posted @ 2019-10-13 21:26 唐胜伟 阅读(127) 评论(0) 推荐(0)
摘要:线程调度方式: 分时调度 平均分配每个线程占用 CPU 的时间。 抢占式调度 优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个线程执行,Java使用的为抢占式调度。 多线程的内存解析: 多线程执行时,在栈内存中,其实每一个执行线程都有一片自己所属的栈内存空间; 线程的栈内存 阅读全文
posted @ 2019-10-13 20:55 唐胜伟 阅读(157) 评论(0) 推荐(0)
摘要:方法一:顺序在线程中创建实例 方法二: 参考:https://blog.csdn.net/eene894777/article/details/74942485 newSingleThreadExecutor()这是一个单线程的Executor,它创建单个工作线程来执行任务,如果这个线程异常结束,会 阅读全文
posted @ 2019-10-09 17:04 唐胜伟 阅读(649) 评论(0) 推荐(0)