我环顾四周,似乎找不到答案。

我正在尝试对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/

10-11 21:59