我似乎无法找到在黑莓的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的()之前锁定对象。这两个方法的行为相同,除了一个唤醒一个等待的线程,而其他唤醒所有等待的线程。其中线程被唤醒的顺序没有规定。每个新线程唤醒必须重新获得它的对象锁定它实际上可以继续之前,因为当它暂停其本身的对象锁定含蓄释放。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top