多线程(2/2)

class MyRun implements Runnable{
public void run(){
for(int i=0;i<10;i++){
System.out.println(i);
try{
Thread.sleep(1000);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}

class MyThread extends Thread{
public void run(){
for(int i=0;i<10;i++){
System.out.println(this.getName() + ": " + i);
try{
Thread.sleep(1000);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}

public class ThreadTest {
public static void main(String[] args) {
Thread.currentThread().setName("M!");
MyThread m1 = new MyThread();
m1.setName("T1");
m1.start();
MyThread m2 = new MyThread();
m2.setName("T2");
m2.start();

MyRun m = new MyRun();
Thread t = new Thread(m);

t.start();

for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName() + ": " + i);
try{
Thread.sleep(1000);
}catch(InterruptedException e){
e.printStackTrace();
}
}

}

}
最佳答案
Java线程有两种方法,一个是实现Runnable,和一个是继承Threadpublic void run()这个方法是线程要做的事情,Thread.sleep(1000);这个是线程睡眠,方法的参数是时间,

Thread.currentThread().setName("M!");设置当前线程的名字
MyThread m1 = new MyThread();你自己写的一个线程,实例化
m1.setName("T1");设置你自己写的线程名字
m1.start();启动线程

MyRun m = new MyRun();这个也是实例化线程,因为你采用的是
Thread t = new Thread(m);因为你这个线程是采用实现Runnable,因为它没start()方法,所以就必须要new一个Thread(把你实现Runnable的线程传进去),来调用它的start()方法

t.start();实现Runnable的话 一般都是这么启动线程

你可能感兴趣的:(java,thread,多线程,String,Class)