摘要: 线程池的创建多种方式 什么是线程池? 将多个线程放在一个容器内,当任务出现和结束时,只需要从线程池拿取和放入线程。避免线程的重复创建和销毁 优点: 提高资源利用率 提高响应速度 提高线程的管理 自定义线程池创建 ThreadPoolExecutor int corePoolSize, int max 阅读全文
posted @ 2023-11-06 17:19 深夜小码农 阅读(26) 评论(0) 推荐(0)
摘要: 队列的详解 什么是队列? 用来存储一条条消息(线程)的容器是一个对列。 队列是一种特殊的线性表,遵循先入先出、后入后出的基本原则 什么是阻塞队列,什么是非阻塞队列? 阻塞队列: 添加元素时,超过总数则会进行等待(阻塞)。删除元素时,队列为空则会进行等待(阻塞)。 非阻塞队列 : 不管什么情况下都不会 阅读全文
posted @ 2023-11-06 15:41 深夜小码农 阅读(474) 评论(0) 推荐(0)
摘要: 在多线程里面,为什么推荐使用notifyAll而不是notify? 结论:notify容易造成死锁 1、无论使用notify或者notifyAll,都是随机唤醒线程 2、notify是随机唤醒一个线程去执行,noifyAll是唤醒所有线程,然后去抢占锁,去执行 怎么产生死锁现象: P – 生产者 调 阅读全文
posted @ 2023-10-30 16:08 深夜小码农 阅读(70) 评论(0) 推荐(0)
摘要: 多线程下使用wait和notify为什么写在while里面,而不是if? 1、在线程下,wait状态会进入waitset队列等待, 没有抢占到锁的线程synchronized,会进入到entryset队列 等待 2、假设有生产者和消费者。同时有多个生产者生产,多个消费者消费 3、如果是if状态,有一 阅读全文
posted @ 2023-10-30 15:35 深夜小码农 阅读(75) 评论(0) 推荐(0)
摘要: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");try{//起始日期Date start = sdf.parse("2019-01-01");//结束日期Date end = sdf.parse("2019-11-27");Date 阅读全文
posted @ 2019-11-28 13:18 深夜小码农 阅读(3229) 评论(0) 推荐(0)
摘要: //List 需要导入的数据int count = 1000;//每批次导入的数目int Lastindex = count;List<List<T>> shareList = new ArrayList<>();for(int index = 0;index < List.size()){if(L 阅读全文
posted @ 2019-11-28 13:17 深夜小码农 阅读(2402) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示