Java启动线程两种方式总结

先查看jdk帮助文档,这么进行描述线程:线程是程序中的执行线程,可以由jvm来运行一个或者多个线程。

 

Java启动线程两种方式总结_第1张图片

方法1:继承Thread 类 重写run方法即可

如下代码:

 

public class Treadtest {


//主方法
public static void main(String[] args) throws InterruptedException   {

Thread process = new processTread();
process.start(); //启动线程 

}

}


class processTread  extends Thread{

public void  run() {

Thread.currentThread().setName("子线程1");

for (int i = 0; i < 10; i++) {

System.out.println(Thread.currentThread().getName() +"--->" + i);
}
}

}

运行结果如下:

Java启动线程两种方式总结_第2张图片

 

方法2:实现runable接口 重写run方法即可

同样先看jdk文档

Java启动线程两种方式总结_第3张图片

代码如下:

 

/*
 * Runable 实现线程方式
 */
public class RunableTest {


public static void main(String[] args) {
// TODO Auto-generated method stub


DemoTest ra = new DemoTest();

Thread t = new Thread(ra);

t.start();
}

}


class DemoTest  implements Runnable{


@Override
public void run() {
 
Thread.currentThread().setName("Runable 实现");
for (int i = 0; i < 10; i++) {

System.out.println(Thread.currentThread().getName() + "-->" + i);
}

}


}

需要注意的是启动一个线程用start()方法,

start(); 启动线程后继续执行下面的方法,无需等待run方法体代码执行完毕,直接继续执行下面的代码;

代码实例:

Java启动线程两种方式总结_第4张图片

运行结果:

Java启动线程两种方式总结_第5张图片

run() 方法只是线程的代码体方法,这里面是需要运行的代码体;

若调用run()方法,程序中只有main这个线程,该程序只是运行了一个普通的方法(相当于对象调用自己的普通方法而已,并不是真正意义上的多线程。)

若调用run方法:

Java启动线程两种方式总结_第6张图片

运行结果如下:

Java启动线程两种方式总结_第7张图片

你可能感兴趣的:(Java)