我正在学习关于同步的多线程。
需要: 在JAVA中编写具有2种方法的互斥类
Class Mutex {
acquire();
release();
}
任何人都可以帮助我。提前谢谢。
答案 0 :(得分:2)
此处Tanembaum(第128页)有信号量发明人的互斥锁示例。 它在C语言中,但它非常简单易读,并且不易翻译。它在java
Object lock = new Object();
int queue = 0
void acquire() throws InterruptedException{
synchronized (lock){
while (queue > 0) {
lock.wait();
}
queue ++;
}
}
void release(){
synchronized (lock){
queue --;
lock.notify();
}
}
这是一个二进制互斥锁;通过更改while条件中的数字,您可以选择最大并发访问次数
答案 1 :(得分:1)
看看这里:
http://www.vogella.com/tutorials/JavaConcurrency/article.html#memorymodel_synchronized
我每次需要它时都会使用它。如果您在不同线程之间使用共享变量,则必须同步修改。