1.继承thread类
public class MyThread extends Thread{
int i;
public MyThread(int i){
this.i = i;
}
@Override
public void run() {
super.run();
System.out.println("我是线程类,我接收到的i:"+i);
}
}
public class TestThread {
public static void main(String[] args) {
for(int i = 0; i<100; i++){
System.out.println("我是主线程,我是第" + i + "次调用线程");
MyThread mt = new MyThread(i);
mt.start();
}
}
}
2.实现Runnable接口,因为java单继承,但是可以实现多个接口
public class MyRunnable implements Runnable{
int i;
public MyRunnable(int i) {
this.i = i;
}
@Override
public void run() {
System.out.println("我是线程类,我接收到的i:"+i);
}
}
public class TestRunnable {
public static void main(String[] args) {
for(int i = 0; i<100; i++){
System.out.println("我是主线程,我是第" + i + "次调用线程");
Runnable runnable = new MyRunnable(i);
Thread thread = new Thread(runnable);
thread.start();
}
}
}
部分结果:
我是主线程,我是第0次调用线程
我是主线程,我是第1次调用线程
我是线程类,我接收到的i:0
我是主线程,我是第2次调用线程
我是线程类,我接收到的i:1
我是主线程,我是第3次调用线程
我是线程类,我接收到的i:2
············
我是主线程,我是第28次调用线程
我是主线程,我是第29次调用线程
我是主线程,我是第30次调用线程
我是线程类,我接收到的i:28
我是线程类,我接收到的i:29
我是线程类,我接收到的i:27