メインスレッド以外の別のスレッドですべてのMySQL接続プロセスを実行して、処理に数秒かかるプロセスにメインスレッドがぶつからないように言われました。非同期で接続を確立する
したがって、別のスレッドでConnectionPoolを確立したため、GUIは接続の確立とは独立して起動します。 しかし、そうではありません。プログラムを実行すると、接続が確立されるまで待ってから、実際にlaunch(args)を実行します。私の関心事は、なぜ新しいスレッドが確立されているときにそれが独立して実行されていないのですか?
public static void main(String[] args) {
initiateConnection();
launch(args);
}
private static void initiateConnection() {
new Thread(() -> {
try {
connection = new ConnectionPool("jdbc:mysql://127.0.0.0/comm", "root",
"pass");
} catch (Exception e) {
}
}).run();
}
2つの違いは何ですか? – Pablo
'.start'は実際にはスレッドの実行を開始させます(スレッドを生成し、そのスレッドで' .run'を呼び出すことによって非同期に実行されます)。 '.run'は同期操作です。 –