如何在调用 FutureTask 的 运行 方法时消除声纳 qube 问题?
How can I eliminate sonar qube issue when calling the run method of FutureTask?
我有以下代码,Sonar Qube 引发了严重错误。
public void onMessageReceived(Message message) {
if((message.getTargetInstanceId() != Message.ANY_TARGET) && (message.getTargetInstanceId() != this.instanceId)) {
//Invalid message ignore
return;
} else {
int randTime = ran.nextInt(2000);
FutureTask<Message> workerTask = new FutureTask<>(new DummyCommandHandler(randTime, message,messageBus,instanceId));
workerTask.run();
}
}
以下是我遇到的问题。
Description Assignee Resource New issue
Thread.run() and Runnable.run() should not be called directly : Call the method Thread.start() to execute the content of the run() method in a dedicated thread.
要调用FutureTask中的start方法,它本来就没有start方法。它只有一个 运行 方法。我怎样才能克服这个问题?有没有 Java 解决方案或 Sonarqube 解决方案?请指教
SonarQube说的对,不要直接调用futureTask.run()
。改为使用 ExecutorService:
ExecutorService executor = Executors.newFixedThreadPool(1);
executor.execute(futureTask1);
This 是关于该主题的简短而好的教程。
我有以下代码,Sonar Qube 引发了严重错误。
public void onMessageReceived(Message message) {
if((message.getTargetInstanceId() != Message.ANY_TARGET) && (message.getTargetInstanceId() != this.instanceId)) {
//Invalid message ignore
return;
} else {
int randTime = ran.nextInt(2000);
FutureTask<Message> workerTask = new FutureTask<>(new DummyCommandHandler(randTime, message,messageBus,instanceId));
workerTask.run();
}
}
以下是我遇到的问题。
Description Assignee Resource New issue
Thread.run() and Runnable.run() should not be called directly : Call the method Thread.start() to execute the content of the run() method in a dedicated thread.
要调用FutureTask中的start方法,它本来就没有start方法。它只有一个 运行 方法。我怎样才能克服这个问题?有没有 Java 解决方案或 Sonarqube 解决方案?请指教
SonarQube说的对,不要直接调用futureTask.run()
。改为使用 ExecutorService:
ExecutorService executor = Executors.newFixedThreadPool(1);
executor.execute(futureTask1);
This 是关于该主题的简短而好的教程。