简体   繁体   English

使用 java 中的线程执行多个 hibernate 查询

[英]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:或者,如果您使用的是较旧的 java 版本:

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.您还可以使用一种方法来完成所有这些操作,而无需一遍又一遍地重复相同的代码。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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