您的位置:首页 > 其它

多线程中 run() 和 start() 方法 的区别

2016-11-22 22:18 337 查看
要实现多线程,首先,让一个普通类去实现 Runnable 接口,然后实现里面的 run 方法。

启动多线程:new Thread(刚刚实现Runnable接口的类).start();

例:

启动三个线程,分别输出 A、B、C

public class ThreadClass implements Runnable{

private String name;

public ThreadClass(String name) {
this.name = name;
}

@Override
public void run() {
int count = 10;
while(count>0){
System.out.println(name);
count--;
}

}

public static void main(String[] args) {
ThreadClass threadClass = new ThreadClass("A");
new Thread(threadClass1).run();

//多线程
ThreadClass threadClass1 = new ThreadClass("A");
ThreadClass threadClass2 = new ThreadClass("B");
ThreadClass threadClass3 = new ThreadClass("C");

new Thread(threadClass1).start();
new Thread(threadClass2).start();
new Thread(threadClass3).start();
}

}


其中,new Thread().start(); 是真正的启动多线程,让该条线程处于可执行的状态(注意,是可执行,而不是立即执行),而真正的执行要等待CPU分配给执行权后才会真正的执行。

而 new Thread().run(); 中的 run() 方法 只是一个普通的方法,调用它后,线程还是只有一条,程序还是按照顺序从上往下执行。

run() 方法只是 Thread 中的普通方法,start() 才是真正的开启多线程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  多线程 线程