guarded block(保护块)

假设a和b线程共同操作一个变量,一个线程无限循环判断这个变量的状态,当这个变量状态不符合条件时跳出循环,这样这个线程是持续占用资源的,那么将将程序改为循环体是一个继承自Object的wait方法,这样该线程就不会占用资源,且wait方法会放弃对象锁,为了保证变量的内存一致性,将方法改为同步,方法判断时别的线程不会操作该变量,wait()时,交出对象锁,别的线程操作该变量,等待别的线程唤醒该线程;

生产者消费者经典案例(producer-consumer),生产者和消费者共享一个对象,生产者放东西时,要保证消费者已经把东西消费了;消费者消费时,要保证生产者已经把东西生产了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章