1

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();

1 Answer 1

3
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.

Sign up to request clarification or add additional context in comments.

2 Comments

What I did in my first example 'new Thread(repository_1::deleteAll).start();' is even cleaner than that. That's why I provided multiple solutions
well ok. I updated the last sample for 1.8

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.