当我在Google App Engine(GAE)应用中使用线程时,IntelliJ中会显示以下警告:
App Engine应用程序不应该创建' java.lang.Thread'的新实例。
我的应用程序已设置为使用Java 8.奇怪的是,如果我从Google的网站加载示例,则此警告不会显示在IntelliJ中。那有什么不同呢?在我的应用程序中创建线程的代码如下所示:
new Thread(new StoreAccountWorker(startSignal, doneSignal)).start();
虽然Google的示例代码如下所示:
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
// Use stderr here since the logger may have been reset by its JVM shutdown hook.
System.err.println("*** shutting down gRPC server since JVM is shutting down");
HelloWorldServer.this.stop();
System.err.println("*** server shut down");
}
});
奇怪的是,如果我将Google示例代码粘贴到我的应用中,则该警告不会显示在Google代码的new Thread
上,但会显示在我的代码行中。