4

こんにちは、とを使用してクラスを同期しようとしていsemaphore.acquire()ますsemaphore.release()。電話センターをPCに接続するために、からというsemaphore.release()名前のクラスから電話をかけています。私の問題は、phone-centerが常に応答しているとは限らないことです。ReadSerialPortsemaphore.acquire()WriteSerialPort

semaphore.release()タイマーをセットして、時間が過ぎたら作る方法を教えてください。

PS:TimedSemaphoreクラスを使ってみましたが、何も起こりませんでした

4

1 に答える 1

7

私の質問の答えは、semaphore.tryAcquire(10、TimeUnit.SECONDS)を使用してJan Goynvaeisによって解決されたため、取得は10秒後にタイムアウトになります。タイムアウト後、semaphore.release(0)を使用してスレッドをクリアします

于 2013-02-11T10:53:40.320 に答える