Threads in Java
java, multithreading
Solution
To create threads, create a new class that extends the `Thread` class, and instantiate that class. The extending class must override the `run` method and call the `start` method to begin execution of the thread.
Inside `run`, you will define the code that constitutes a new thread. It is important to understand that `run` can call other methods, use other classes and declare variables just like the main thread. The only difference is that `run` establishes the entry point for another, concurrent thread of execution within your program. This will end when `run` returns.
Here's an example:
public class MyThread extends Thread {
private final String name;
public MyThread(String name) {
this.name = name;
}
public void run() {
try {
for (; ; ) {
System.out.println(name);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
System.out.println("sleep interrupted");
}
}
public static void main(String[] args) {
Thread t1 = new MyThread("First Thread");
Thread t2 = new MyThread("Second Thread");
t1.start();
t2.start();
}
}
You will see this on the screen:
First Thread
Second Thread
First Thread
Second Thread
First Thread
This tutorial also explains the `Runnable` interface. With Spring, you could use a thread pool.
Problem
I was today asked in an interview over the Thread concepts in Java? The Questions were... - What is a thread? - Why do we go for threading? - A real time example over the threads. - Can we create threads in Spring framework service class. - Can flex call a thread? I did not answer any questions apart from definition of Thread, that too I just learnt from internet. Can anyone explain me clearly over this. Update: What is a difference between a thread and a normal java class. why do we need threading... can i execute business logic in threads. Can i call a different class methods in Threads.