黑莓Semaphore类
-
22-07-2019 - |
题
我似乎无法找到在黑莓的Java参考什么相当于一个信号量。我在想什么? java.util.concurrent中才存在。
谢谢!肖恩
解决方案
因此,对于任何人谁碰到这个来了,coldice”优秀的回答使我这个网页,这也解释了如何使用等待来实现各种类型的信号量/通知J2ME的 http://tutorials.jenkov.com/java-concurrency/semaphores.html 。谢谢!
其他提示
从由Eric Giguere 使用在J2ME应用程序线程:
在监视器维护的等待线程,只允许一个线程在每次输入该块的队列。
由于每个Java对象可以作为显示器起作用,java.lang.Object类定义了三个方法暴露出此基本功能:等待(),通知()和notifyAll()。任何线程可以通过调用对象的wait()方法挂起自己:
...
Object obj = .... // some object to use as a lock
synchronized( obj ){
// here is where you'd check obj's state
try {
obj.wait();
}
catch( InterruptedException e ){
}
}
...
线程必须调用其的等待()方法之前锁定对象。它还必须抓住java.lang.InterruptedException与线程中断妥善处理。它本身暂停后的线程隐式释放其在对象上的锁。
在等待()方法被重载:该线程可以指定以毫秒为单位的可选的超时,如果它不希望无限期地等待
一旦线程挂起自己,另一个线程释放它通过调用相同的对象的通知()或notifyAll的()方法:
...
Object obj = .... // same object used as lock!
synchronized( obj ){
obj.notify(); // or notifyAll
}
...
同样,第二螺纹必须在调用通知()或notifyAll的()之前锁定对象。这两个方法的行为相同,除了一个唤醒一个等待的线程,而其他唤醒所有等待的线程。其中线程被唤醒的顺序没有规定。每个新线程唤醒必须重新获得它的对象锁定它实际上可以继续之前,因为当它暂停其本身的对象锁定含蓄释放。
不隶属于 StackOverflow