摘要: 管程法_解决生产者消费者问题 生产者:负责生产数据的模块(可能是方法,对象,线程,进程); 消费者:负责处理数据的模块(可能是方法,对象,线程,进程); 缓冲区:消费者不能直接使用生产者的数据,它们之间有个“缓冲区”生产者将生产好的数据放入缓冲区中,消费者从缓冲区拿出数据 代码: package m 阅读全文
posted @ 2021-07-22 23:12 CH0701 阅读(185) 评论(0) 推荐(0)
摘要: 线程协作_生产者消费者问题 线程通信 应用场景:生产者消费者问题 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止 如果仓库中放有产品,则消费者可以将产品取走消费, 阅读全文
posted @ 2021-07-22 22:36 CH0701 阅读(39) 评论(0) 推荐(0)
摘要: Lock(锁) 从JDK 5.0开始,Java提供了更加强大的线程同步机制————通过显示定义同步锁对象来实现同步。同步锁使用Lock对象充当。 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程 阅读全文
posted @ 2021-07-22 22:19 CH0701 阅读(111) 评论(0) 推荐(0)
摘要: 死锁 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形,某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题 死锁避免的方法:破坏大于等于一个,产生死锁的必要条件 产生死锁的四个必要条件: 互斥条件: 阅读全文
posted @ 2021-07-22 21:56 CH0701 阅读(100) 评论(0) 推荐(0)
摘要: 测试JUC安全类型的集合:CopyOnWriteArrayList 代码: package multithreading.TestSynchronized; import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput; import java.u 阅读全文
posted @ 2021-07-21 21:35 CH0701 阅读(41) 评论(0) 推荐(0)
摘要: 同步方法 由于我们可以通过private关键字来保证数据对象只能被方法访问,所以我们只需要针对方法提出一套机制,这套机制就是synchronized关键字,它包括两种用法:synchronized方法和synchronized块 同步方法:public synchronized void metho 阅读全文
posted @ 2021-07-21 21:21 CH0701 阅读(50) 评论(0) 推荐(0)
摘要: 线程不安全的三个案例 1. 不安全的买票 代码: package multithreading.UnSafe; // 不安全的买票 // 线程不安全,有负数 public class UnsafeBuyTicket { public static void main(String[] args) { 阅读全文
posted @ 2021-07-21 20:31 CH0701 阅读(168) 评论(0) 推荐(0)
摘要: 线程同步(多个线程操作同一资源) 并发:同一对象被多个线程同时操作 上万人同时抢100张票 两个银行同时取钱 线程同步:(排队) 线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入对象的等待池形成队列,等待前面线程使用完毕,下一线程再使用 解决线程不安全的问题:队列+锁 由于同一进程的多 阅读全文
posted @ 2021-07-21 11:05 CH0701 阅读(37) 评论(0) 推荐(0)
摘要: 守护线程_daemon 线程分为用户线程和守护线程 虚拟机必须确保用户线程(main)执行完毕 虚拟机不用等待守护线程(gc)执行完毕 如:后台记录操作日志,监控内存,垃圾回收等等 测试案例: package multithreading; // 测试守护线程 // 上帝守护你 public cla 阅读全文
posted @ 2021-07-21 10:29 CH0701 阅读(35) 评论(0) 推荐(0)
摘要: 线程优先级_priority Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行 线程的优先级用数字表示,范围从1~10 Thread.MIN_PRIORITY = 1; Thread.MAX_PRIORITY = 10; Thread 阅读全文
posted @ 2021-07-21 09:54 CH0701 阅读(85) 评论(0) 推荐(0)