多线程
清辞sweet
这个作者很懒,什么都没留下…
展开
-
线程池实现多线程
问题:之前来一个线程任务,就需要创建一个线程对象去执行,用完还要销毁线程对象,如果线程任务多了,就需要频繁创建线程对象和销毁线程对象,这样会耗费内存资源,所以我们就想线程对象能不能循环利用,用的时候直接拿线程对象,用完还回去。4、需要第三个线程任务,如果池中有空闲线程则直接使用,用完返回。2、需要第一个线程任务,检查池中是否有对象,如果没有则创建线程对象,使用完还给线程池;3、需要第二个线程任务,如果有则直接使用,用完返回池中,如果没有则创建,用完返回;a.参数:指定线程池中最多创建的线程对象条数。原创 2024-06-20 16:38:32 · 180 阅读 · 0 评论 -
Lock基本使用
synchronized:不管是同步代码块还是同步方法,都需要在结束一对{}之后,释放锁对象。Lock:是通过两个方法控制需要被同步的代码,更灵活。2.实现类:ReentrantLock。1.概述:Lock是一个接口。unlock() 释放锁。lock() 获取锁。原创 2024-06-20 16:28:02 · 106 阅读 · 0 评论 -
多线程等待唤醒案例
前提:一个线程生产,一个线程消费,不能连续生产,不能连续消费。线程间等待唤醒机制(生产者,消费者)(线程之间的通信)。2、设置flag,如果为true则有产品,需要消费者消费,生产者等待;4、利用wait和notify方法来保证生产一个消费一个,防止连续生产与消费。1、生产者生产产品:定义count++,消费者消费产品:输出count;案例:生产者生产产品,消费者消费产品。不能连续生产,不能连续消费。3、加锁来控制线程间的切换,防止在生产和消费时发生线程切换。原创 2024-06-20 16:23:34 · 200 阅读 · 0 评论