简体   繁体   中英

Execute multiple hibernate queries using threads in java

I have the following lines to execute, and I want to know if there is a way using threads to execute them all at once.

repository_1.deleteAll();
repository_2.deleteAll();
repository_3.deleteAll();
repository_4.deleteAll();
repository_5.deleteAll();
repository_6.deleteAll();
new Thread(repository_1::deleteAll).start();
new Thread(repository_2::deleteAll).start();
new Thread(repository_3::deleteAll).start();
new Thread(repository_4::deleteAll).start();
new Thread(repository_5::deleteAll).start();
new Thread(repository_6::deleteAll).start();

or if you are on an older java version:

new Thread(new Runnable() { @Override public void run() { repository_1.deleteAll(); }}).start();
new Thread(new Runnable() { @Override public void run() { repository_2.deleteAll(); }}).start();
new Thread(new Runnable() { @Override public void run() { repository_3.deleteAll(); }}).start();
new Thread(new Runnable() { @Override public void run() { repository_4.deleteAll(); }}).start();
new Thread(new Runnable() { @Override public void run() { repository_5.deleteAll(); }}).start();
new Thread(new Runnable() { @Override public void run() { repository_6.deleteAll(); }}).start();

or if you want to wait for all of them to finish deleting before continuing your code:

Thread t1 = new Thread(repository_1::deleteAll);
Thread t2 = new Thread(repository_2::deleteAll);
Thread t3 = new Thread(repository_3::deleteAll);
Thread t4 = new Thread(repository_4::deleteAll);
Thread t5 = new Thread(repository_5::deleteAll);
Thread t6 = new Thread(repository_6::deleteAll);
    
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
t6.start();
    
try {
    t1.join();
    t2.join();
    t3.join();
    t4.join();
    t5.join();
    t6.join();
} catch (Throwable tr) {
    tr.printStackTrace();
}

you could also use a method to do all of that without repeating the same code over and over again btw.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM