随笔分类 -  多线程

多线程基础
摘要:线程通信 使用synchronized和wait,notify或notifyAll唤醒 ThreadFactory线程工厂生产线程的工厂,newThread是生产线程的方法,可以定义线程的基本特性。(比如优先级、是否守护线程) AtomicInteger 对整型数据进行原子操作,保证加减操作线程安全 阅读全文

posted @ 2023-01-30 15:50 周公 阅读(25) 评论(0) 推荐(0) 编辑

线程池任务执行结果Future
摘要:获取线程池submit获取Future对象 Future<String> future = pool.submit(task); Future对象的方法 get方法 不带参数(阻塞式):直到任务执行完毕才获取返回结果,在任务执行过程中阻塞。 带参数(定时式):设置最大超时时间,到达这个时间线程未结束 阅读全文

posted @ 2022-05-06 14:23 周公 阅读(200) 评论(0) 推荐(0) 编辑

创建线程池
摘要:创建一般线程池 推荐的方法:new ThreadPoolExecutor , 不推荐使用FixThreadPool 和 SingleThreadPool,因为这两个类的请求队列长度是最大整数,任务堆积过多会导致内存不够用从而OOM. 创建线程的工具类--单例 public enum FixedThr 阅读全文

posted @ 2022-05-05 21:11 周公 阅读(39) 评论(0) 推荐(0) 编辑

线程池基本知识
摘要:线程池结构: 能实例化的只有ThreadPoolExecutor和ScheduledThreadPoolExecutor ScheduledExecutorService : 除了线程池的特性外,还能执行延迟执行和循环的任务。 线程池核心参数 public ThreadPoolExecutor(in 阅读全文

posted @ 2022-05-04 18:55 周公 阅读(29) 评论(0) 推荐(0) 编辑

终止线程
摘要:参考:https://www.cnblogs.com/Mateo-dengmin/p/15837676.html 方式一 通过volatile标识去判断退出线程 不推荐 理由:把开关停止的时候,无法停止线程。因为thread.put的时候发生了阻塞,被叫醒之前没办法进行下个任务。 方式二 使用sto 阅读全文

posted @ 2022-04-29 17:29 周公 阅读(36) 评论(0) 推荐(0) 编辑

线程死锁
摘要:死锁(DeadLock)死锁概述线程死锁是指两个或两个以上的线程互相持有对方所需要的资源,由于synchronized的特性,一个线程持有一个资源,或者说获得一个锁,在该线程释放这个锁之前,其它线程是获取不到这个锁的,而且会一直死等下去,因此这便造成了死锁。 死锁产生的条件互斥条件:一个资源,或者说 阅读全文

posted @ 2021-07-27 20:30 周公 阅读(218) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示