您可以在您获取()的另一个线程上调用java.util.concurrent.Semaphore.release()吗? - java

我有一个Java模块,该模块需要通过接口同时执行一组任务(以对实现该模块的框架进行低级控制和处理),但是同时执行的操作不是太多,因此java.util.concurrent.Semaphore似乎很完美。

我不确定的一个问题是release()acquire()调用的线程安全性。一个线程可以获取信号量锁,然后另一个线程释放它吗?

参考方案

这是对Javadoc about release() 的说明

不要求释放许可证的线程必须具有
通过调用acquire()获得许可。正确使用
信号量是通过应用程序中的编程约定建立的。

是的你可以做。

java.util.Scanner不返回到提示 - java

import java.util.Scanner; class newClass { public static void main(String args[]) { Scanner s = new Scanner(System.in); while (s.hasNext()) { System.out.println(s.next()); } s.clos…

同步代码块是仅阻塞分配还是整个块体? - java

我有一个数据变量monthArray,可由多个使用者读取,并由单个periodallall预定的更新程序线程定期进行更新。全部异步。我考虑了这两个选项,以安全地执行更新。 ArrayList<String> tempArray = ModelJob.getDistinctMonths(user, true); synchronized (mont…

Java.util.zip替换单个zip文件 - java

问题我有一个现有的zip文件“main.zip”。我要替换其中的单个文件“say main.zip/foo”。我知道: http://docs.oracle.com/javase/7/docs/api/java/util/zip/ZipOutputStream.html但是,这并不能满足我的要求,因为它会创建一个新的Zip文件-因此,我还必须在main.zi…

调用没有超类的super()吗? - java

当构造函数调用“super()”而没有Object之外没有任何超类时会发生什么(如果有的话)?像这样:public class foo implements Serializable, Comparable { int[] startPoint; public foo() { super(); startPoint = {5,9}; } } 编辑:那么,如果…

内存一致性-Java中的“事前发生”关系 - java

在阅读有关内存一致性错误的Java文档时。我发现与发生的两个动作相关的要点-关系之前:当一条语句调用Thread.start()时,每个具有一个与该语句的关系发生之前与新语句执行的每个语句的关系发生之前线。导致创建代码的代码的效果新线程对新线程可见。 当线程终止并在另一个线程中导致Thread.join()时返回,然后终止的所有语句执行线程与所有语句具有事前…