나는 몇 가지 인자가 주어진 게임 서버를 호스팅하는 IRC 봇을 가지고있다. 문제는 일단 서버를 호스팅하면 IRC 수신을 중단한다는 것입니다 (현실적으로 한 번에 하나의 서버 만 호스팅 할 수 있음). 이것은 내가 원하는 것이 아닙니다.자바 쓰레드가 시작되지 않는다
스레딩이 내 문제에 대한 해답이라고 가정했으나 제대로 작동하지 않는 것으로 보입니다. 그것은 실제로 다른 스레드에서 시작되지 않는 것 같습니다?
// Everything is okay, run the server.
Runnable r = new Server(this, channel);
Thread thread = new Thread(r);
thread.start();
을 그리고 여기에 (아마도) 스레딩 제어하는 서버 클래스입니다 :
public class Server extends PircBot implements Runnable {
public void run() {
}
public Server (bot BotRun, String channel) {
String names[] = org.bestever.bebot.bot.hostbuilder.split(" ");
ProcessBuilder pb = new ProcessBuilder(names);
pb.redirectErrorStream(true);
try {
Process proc = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String strLine = null;
while((strLine = br.readLine()) != null) {
// Returns UDP Initialized if the server was successfully started
if (strLine.equalsIgnoreCase("UDP Initialized.")) {
BotRun.sendMessage(channel, "Server started successfully.");
}
// Returns Bad Hex Number if there is a problem with the WAD file
else if (strLine.startsWith("Bad hex number")) {
BotRun.sendMessage(channel, "Error starting server: "+strLine);
}
System.out.println(strLine);
}
Thread.currentThread().interrupt();
} catch (IOException e) {
e.printStackTrace();
}
}
내가 실제로 가지고 여기
가 시작되고 스레딩을 통해 메소드를 실행 내 주요 클래스 스레드에서 시작 했습니까? 어떤 도움을 주셔서 감사합니다!
멍청한 질문에 사과드립니다.이 내용을 더 자세히 확인해야합니다. 답변 해주셔서 감사합니다! – Ivan