![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
synchronized
charles·wang
欣逢盛世 当不负盛世 -- 钟南山
展开
-
面试题--采用Java多线程技术 设计实现一个符合生产者和消费者问题的程序 (wait/notify/notifyAll)实现一个装弹射击程序
题目: 采用Java多线程技术(例如wait和notify),设计实现一个符合生产者和消费者问题的程序,对一个对象(枪膛)进行操作,其最大容量是20颗子弹。 生产者线程是一个压入线程,他不断向枪膛中压入子弹;消费者线程是一个射出线程,它不断从枪膛中射出子弹。一. 初步实现 请先自己做一遍在看我的思路。 分析: 两个线程,一个装弹,一个开火。那就开启两个线程。两个线程各干自己的活,自己干了活还要通知对方(我干了些,你也别歇着了!)。 然后再思考,他们是始终不会结束的,那么他们要在一个原创 2020-06-10 00:09:05 · 590 阅读 · 0 评论 -
等待/通知机制 notify() 、notifyAll()、wait()使用
等待/通知机制: 类似于生产者与消费者的关系。是指一个线程A调用了对象Object的wait()方法进入等待状态。另一个线程B调用notify()或notifyAll()方法,通知进入等待的线程。线程A收到通知后,从等待中返回,继续执行后面的操作。一. 方法解释说明1. wait() 方法waitpublic final void wait() throws InterruptedException 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当原创 2020-06-08 21:26:01 · 682 阅读 · 0 评论 -
synchronized 的关键字 内置锁 内置锁机制及使用方法
内置锁机制: java 支持多个线程同时访问一个对象或者对象的成员变量。关键字synchronized可以修饰方法或者代码块,它主要确保一个线程在同一时刻,同一把锁中,只能有一个线程处于方法或者同步代码块中。他保证了线程对变量访问的可见性与排他性。用法: 1.同步代码块中; 2.方法上;/** * 1.同步代码块中; */public void test1(){ synchronized (this){ //todo }}/** * 2.方法原创 2020-05-17 15:49:58 · 147 阅读 · 0 评论