Java 线程一 Thread类
通过继承Thread类来实现,调用Thread.start();方法来启动线程。
在调用start方法后,Java会启动新线程来调用run方法,如果直接调用run方法,是不会启动新线程的。
示例代码如下:
public class Main {
public static void main(String[] args) {
new Main();
}
public Main(){
MyThread myThread = new MyThread();
myThread.start();
for(int i=0;i<10000;i++){
System.out.println("Good!");
}
}
public class MyThread extends Thread{
public void run(){
for(int i=0;i<10000;i++){
System.out.println("Nice!");
}
}
}
}
运行结果:
Good!Nice! 随机交叉打印。
示例二:
public class Main {
public static void main(String[] args) {
new Main();
}
public Main(){
new MyThread("Good!").start();
new MyThread("Nice!").start();
}
public class MyThread extends Thread{
private String message;
public MyThread(String message){
this.message = message;
}
public void run(){
for(int i=0;i<10000;i++){
System.out.println(message);
}
}
}
}
运行结果与示例一相同:
Good!和Nice!随机交叉运行。
Java 线程二 Runnable接口
示例代码一:
public class Main {
public static void main(String[] args) {
new Main();
}
public Main(){
new Thread(new MyPrint("Good!")).start();
new Thread(new MyPrint("Nice!")).start();
}
public class MyPrint implements Runnable{
private String message;
public MyPrint(String message){
this.message = message;
}
public void run(){
for(int i=0;i<10000;i++){
System.out.println(message);
}
}
}
}
运行结果:
Good!和Nice!随机交叉打印
Thread类 和 Runnable接口
Thread类本身也实现了Runnalbe接口,也有run方法,只不过Thread类的run方法主体是空的,通常被子类覆盖 override。