创建线程的两种方式
Java中创建线程有两种方式,一种是继承Thread类,一种是实现Runnable接口.下面就这两种方式分别演示一下:
1.通过继承Thread类创建线程类。
package com.thread; public class FirstThead { public static void main(String[] args) { new MyThread().start(); new MyThread().start(); } } class MyThread extends Thread{ //重写run方法 @Override public void run() { for (int i=0;i<100;i++){ System.out.println(getName()+" :"+i); } } }
输出结果部分如下:
Thread-0 :0 Thread-0 :1 Thread-0 :2 Thread-1 :0 Thread-1 :1 Thread-1 :2 Thread-1 :3 Thread-1 :4 Thread-1 :5 Thread-1 :6 Thread-1 :7 Thread-1 :8 Thread-1 :9 Thread-1 :10 Thread-1 :11 Thread-1 :12
由上面结果,我们可以间接地看出,两条线程的循环变量并不连续,表明它们没有共享数据!
2、通过实现Runnable接口来创建线程类.
package com.thread; public class SecondThread { public static void main(String[] args) { Thread t1=new Thread(new MyThead(),"first"); t1.start(); Thread t2=new Thread(new MyThead(),"second"); t2.start(); } } class MyThead implements Runnable{ @Override public void run() { for (int i=0;i<100;i++){ System.out.println(Thread.currentThread().getName()+" "+i); } } }
部门输出结果如下:
second 84 second 85 second 86 first 35 first 36 first 37 second 87 second 88 second 89 second 90 second 91 second 92 second 93 first 38 second 94 first 39 second 95
至此两种创建线程的方式已经完成,顺便唠叨一下,当继承Thread时,我们可以直接调用getName()方法获得当前线程的名字;实现了Runnable接口时,可以使用Thread.currentThread().getName()方法获得当前线程的名字!