
多线程
文章平均质量分 52
22岁,是学生
这个作者很懒,什么都没留下…
展开
-
线程池ExecutorService
如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。线程池就是一个容纳多个线程的容器,池中的线程可以反复使用,省去了频繁创建线程对象的操作,节省了大量的时间和资源。 线程池的好处:降低资源消耗 提高响应速度 提高线程的可管理性Java中共包含四种线程池:缓存线程池、定长线程池、单线程线程池、周期性任务定长线程池。缓存线程池:缓存线程池的长度无限制。执行流程:判断线程池是否存在空闲原创 2021-04-07 19:42:24 · 208 阅读 · 1 评论 -
线程创建的三种方法
最常用的两种方法——继承Thread类和实现Runnable接口1.继承Thread类class MyThread extends Thread{}public static void main(String[] args){ Thread t = new MyThread("线程名"); t.start();}2.实现Runnable接口class MyRunnable implements Runnable{}public static void main(原创 2021-04-07 17:07:45 · 100 阅读 · 2 评论 -
线程的六种状态
具体来说:1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。实现Runnable接口和继承Thread可以得到一个线程类,new一个实例出来,线程就进入了初始状态。2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。...原创 2021-04-07 16:51:47 · 214 阅读 · 1 评论 -
多线程通信——生产者和消费者
假设在一个饭店中有一个厨师(生产者)、一个服务员(消费者),还有食物三类。为了更明显的看到生产者消费者两个线程合作时产生的问题,先在在设置食物属性中间使其休眠。//食物static class Food{ private String name; private String taste; //为了更明显的看到生产者消费者不加休眠产生的问题,在设置中间使其休眠 public void setNameAndTaste(String name, String原创 2021-04-07 16:37:28 · 105 阅读 · 1 评论