
线程
L_J_X03
这个作者很懒,什么都没留下…
展开
-
并发问题的死锁编码及定位分析
死锁的原因:查看是否死锁#查看进程编号 jps -l#查看进程运行状况jstack 进程编号原创 2021-05-09 14:13:38 · 130 阅读 · 0 评论 -
线程池的底层工作原理与四种拒绝策略
线程池拒绝策略生效的条件:1.当阻塞队列里面的线程数已经达到最大2.当线程池的线程数量已经达到max值满足这两个条件时,拒绝策略就会生效原创 2021-05-08 16:11:02 · 225 阅读 · 0 评论 -
线程池七大参数(详解ThreadPoolExecutor构造方法的七个参数)
ThreadPoolExecutor的七参构造方法public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQ.原创 2021-05-07 14:36:27 · 251 阅读 · 0 评论 -
Executors创建线程池的三种方式与它的底层ThreadPoolExecute(浅谈)
线程池的底层用的是ThreadPoolExecutor线程池不需要new,已经写好池化注意:使用池化线程,永远使用关闭,关闭比使用更重要实例一:创建固定大小的线程池 /** * 创建固定大小的线程池 */ private static void ExecutorNewFixedThreadPool() { ExecutorService executorService = newFixedThreadPool(5); try{ .原创 2021-05-07 13:52:17 · 555 阅读 · 0 评论 -
线程池的使用和优势三种实现方法(主聊callable)
使用和优势1.省略了上下文的切换课外扩展:int availableProcessors = Runtime.getRuntime().availableProcessors(); System.out.println("可用的处理器: "+availableProcessors);线程池的优势,特点三种实现方法:1.继承Thread类,不可以抛异常,无返回值public class MyThread extends Thread{ @Override原创 2021-05-07 11:05:24 · 303 阅读 · 1 评论 -
线程通信之传统的生产者消费者(await在while的原因)
sync的等待(wait)与解锁(notify) 老版lock的等待(wait)与解锁(singal) 新版多线程的判断需要用while判断await要放在while方法里面防止正在waiting被别的原因唤醒,放在while里面,会判断while里面的条件可能会重写挂起。错误情况一:如果有两个生产者A和B,一个消费者C。当存储空间满了之后,生产者A和B都被wait,进入等待唤醒队列。当消费者C取走了一个数据后,如果调用了notifyAll(),注意,此处是调用notifyAll(),则生产者原创 2021-05-06 13:26:15 · 343 阅读 · 0 评论