先查看jdk帮助文档,这么进行描述线程:线程是程序中的执行线程,可以由jvm来运行一个或者多个线程。
方法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);
}
}
}
运行结果如下:
方法2:实现runable接口 重写run方法即可
同样先看jdk文档
代码如下:
/*
* 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方法体代码执行完毕,直接继续执行下面的代码;
代码实例:
运行结果:
run() 方法只是线程的代码体方法,这里面是需要运行的代码体;
若调用run()方法,程序中只有main这个线程,该程序只是运行了一个普通的方法(相当于对象调用自己的普通方法而已,并不是真正意义上的多线程。)
若调用run方法:
运行结果如下: