Reputation: 1112
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();
Upvotes: 1
Views: 258
Reputation: 964
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.
Upvotes: 3