Java中创建线程主要有三种方式
一、继承Thread类创建线程类
(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。
(2)创建Thread子类的实例,即创建了线程对象。
(3)调用线程对象的start()方法来启动该线程。
public class ExtendThread extends Thread{ //重写run方法,run方法的方法体就是现场执行体 public void run() { for(int i=1;i<=5;i++){ System.out.println(Thread.currentThread().getName() + " is running " + i ); //上述代码中Thread.currentThread()方法返回当前正在执行的线程对象。GetName()方法返回调用该方法的线程的名字 } } public static void main(String[] args){ for(int j=0;j<5;j++){ if(j==2){ new ExtendThread().start() ; new ExtendThread().start() ; } } } }
二、实现
public class ImplementRunnable implements Runnable{ public void run(){ for(int i = 1;i <=5;i++){ System.out.println(Thread.currentThread().getName()+" "+i); } } public static void main(String[] args){ for(int i = 0;i < 5;i++){ System.out.println(Thread.currentThread().getName()+" "+i); if(i==2){ ImplementRunnable rtt = new ImplementRunnable(); new Thread(rtt,"新线程1").start(); new Thread(rtt,"新线程2").start(); } } } }
三‘
public class Call implements Callable<Integer> { @Override public Integer call() throws Exception { return 1; } }
其实: Thread类实现了Runable接口
而Runable接口里面定义了一个简单的抽象无返回值的的run()方法
------------------------- A little Progress a day makes you a big success... ----------------------------