下面是通过实现Runnable接口的方式实现多线程的几种写法,这种方式用的相对较多,因为相对于继承Thread类的方式而言,这种方式更加灵活,解决了java单继承的痛点。
写法一:
public class ThreadTest {
public static void main(String[] args) {
new Thread(new T1()).start();
new Thread(new T2()).start();
}
}
class T1 implements Runnable{
@Override
public void run() {
for(int i = 0; i < 100; i++)
System.out.println(“T1…..running……..”);
}
}
class T2 implements Runnable{
@Override
public void run() {
for(int i = 0; i < 100; i++)
System.out.println(“T2…..running……..”);
}
}
写法二:
public class ThreadTest {
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
for(int i = 0; i < 100; i++)
System.out.println(“T1…..running……..”);
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
for(int i = 0; i < 100; i++)
System.out.println(“T2…..running……..”);
}
}).start();
}
}
写法三:需要JDK1.8+
public class ThreadTest {
public static void main(String[] args) {
new Thread(()-> {
for(int i = 0; i < 100; i++)
System.out.println(“T1…..running……..”);
}).start();
new Thread(()-> {
for(int i = 0; i < 100; i++)
System.out.println(“T2…..running……..”);
}).start();
}
}