我可以在 Java 中创建条件变量数组吗?

Can I create an array of Condition variables in Java?

我正在尝试使用条件变量实现监视器。我的问题是我想创建很多条件变量。

private Lock lock = new ReentrantLock();
final Condition[] self;

如何初始化条件类型 self 数组?

感谢 Slaw 和 Stephen C 纠正我糟糕的第一个答案。

初始化您的 final 数组,就好像它不是最终数组一样。 [Slaw's not exact words->] final 关键字表示不能将数组重新分配给新数组。您仍然可以 modify 数组中的元素。

例如,您可以将数组 "self" 初始化为 new Condition[1];,然后执行 self[0] = new Condition(),然后执行 System.out.println(self[0]);

我建议创建一个条件列表。

代码示例:

List<Condition> conditions = new ArrayList<Condition>();
Lock lock = new ReentrantLock();
conditions.add(lock.newCondition());