1、继承Thread类,对run方法进行重写。 public class Main { public static void main(String[] args) { NewThread thread = new NewThread(); thread.start(); } }
public class NewThread extends Thread{ @Override public void run() { for(int i=0; i<10; i++) { System.out.println("当前次数:"+i); } } }
2、对Runnable接口进行重写,实现Runnable接口。
public static void main(String[] args) { InterfaceThread thread1 = new InterfaceThread(); Thread thread2 = new Thread(thread1); thread2.run(); }
public class InterfaceThread implements Runnable{ @Override public void run() { System.out.println("过去终究是过去!"); } }
3、实现Callable接口。
Java中可使用Callable接口创建线程,Callable接口与前两种方法的区别在于可以返回一个结果。
第一步:创建一个CallableThread类实现Callable接口。
public class CallableThread implements Callable { @Override public Object call() throws Exception { int j = 0; for(int i=0; i<5; i++){ if(i==3){ j=i; break; } System.out.println("当前次数为:"+i); } return j; } }
第二步:
CallableThread callableThread = new CallableThread(); //FutureTask包装CallableThread对象 FutureTask<Integer> ft = new FutureTask<Integer>(callableThread); Thread thread = new Thread(ft); thread.start(); System.out.println("CallableThread的返回结果为:"+ ft.get());
4、通过线程池创建线程