我试图用Java打开一个线程,但由于某种原因我每次都会得到一个例外。我的语法:
Thread receiveThread2;
receiveThread2 = new Thread(() -> {
try {
receiveMessageNoLoop();
}
catch (IOException ex) {
Logger.getLogger(ModelClient.class.getName()).log(Level.SEVERE, null, ex);
}
});
receiveThread2.start();
我的函数receiveMessageNOLoop()
在同一个Java类中:
public void receiveMessageNoLoop() throws IOException {
String stringData;
inFromServer.read(dataForLoop2, 0, 1024);
takeCareOfJason(dataForLoop2);
}
如果我没有线程那样做,那就完美了。问题是,我必须使用线程,由于某种原因,它给了我nullPointerException。
答案 0 :(得分:0)
首先尝试将recieveThread2设置为null。
Thread recievThread2 = null;
但我建议使用执行程序服务来启动你的线程
ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.execute(() -> {/*Your code*/});