3

有没有办法Semaphore只用一行代码在短时间内获取 a ,然后在该间隔之后释放它?浏览信号量文档http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Semaphore.html我没有看到这一点,但我不熟悉所有术语。

或者,是否有另一种方法可以在 a 运行时获取信号量TimerTask,然后自动释放它?

4

1 回答 1

0

您可以使用 try-with-resources 变体:try (Foo foo = new Foo();) { ... }对象的构造函数Foo()获取信号量,并foo.close()释放它的方法。

于 2013-10-29T09:19:26.283 回答