我环顾四周,似乎找不到答案。
我正在尝试对6个信号量进行编程。 [1至6]。
目前,我有这个:
protected static Semaphore[] push;
其次是 :
for (int i = 1; i <= 6; i++){
push[i] = new Semaphore(0);
}
我没有收到任何错误消息:
protected static Semaphore mutex;
mutex = new Semaphore(1);
我收到的错误是:
Exception in thread "main" java.lang.NullPointerException
我觉得这与不声明数组的大小有关,但是我不是很肯定。任何输入表示赞赏。
最佳答案
protected static Semaphore[] push;
在初始化它之前,静态变量是
null
(这就是为什么当您尝试访问数组时会出现NullPointerException的原因)。您需要初始化数组:
protected static Semaphore[] push = new Semaphore[6];
关于java - 如何用Java编写信号量数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9914930/