Home > Java > javaTutorial > Thread.start() vs. Runnable.run(): What's the Difference in Multithreading?

Thread.start() vs. Runnable.run(): What's the Difference in Multithreading?

Mary-Kate Olsen
Release: 2025-01-03 16:53:39
Original
299 people have browsed it

Thread.start() vs. Runnable.run(): What's the Difference in Multithreading?

Thread.start() and Runnable.run() in Multithreading

When delving into multithreading, we often encounter two crucial methods: Thread.start() and Runnable.run(). Understanding the distinction between them is essential for effective thread management.

Runnable.run()

The run() method is a key part of implementing the Runnable interface. It defines the code that needs to be executed as a separate thread. By calling run(), you essentially initiate the execution of the implemented code within the calling thread.

Thread.start()

Unlike run(), calling Thread.start() does not directly execute the associated thread's code. Instead, it launches a new thread and delegates the execution of the run() method to that new thread. The new thread operates independently of the calling thread, enabling true multithreading.

Key Difference

The fundamental difference lies in whether multiple threads are created. Calling run() simply runs the code within the current thread, whereas start() initiates a new thread to execute the code.

Example

Consider two Runnable classes, R1 and R2:

class R1 implements Runnable {
    public void run() { ... }
}

class R2 implements Runnable {
    public void run() { ... }
}
Copy after login

Case 1: Using run()

R1 r1 = new R1();
R2 r2 = new R2();

r1.run();
r2.run();
Copy after login

In this scenario, both r1 and r2 execute their run() methods sequentially within the same thread. No additional threads are created.

Case 2: Using start()

R1 r1 = new R1();
R2 r2 = new R2();
Thread t1 = new Thread(r1);
Thread t2 = new Thread(r2);

t1.start();
t2.start();
Copy after login

When start() is invoked on t1 and t2, new threads are created to run the run() methods of r1 and r2, respectively. This results in true multithreading, with each thread executing independently.

The above is the detailed content of Thread.start() vs. Runnable.run(): What's the Difference in Multithreading?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template