1.Threadjava
/** * */ package testJava2.thread; /** * @author xxx.sjtu * @function * @date 2017年5月17日 * @version */ public class FirstThreadTest extends Thread { int i = 0; public FirstThreadTest(int i) { super(); this.i = i; } public FirstThreadTest() { super(); // TODO Auto-generated constructor stub } public FirstThreadTest(Runnable target, String name) { super(target, name); // TODO Auto-generated constructor stub } public FirstThreadTest(Runnable target) { super(target); // TODO Auto-generated constructor stub } public FirstThreadTest(String name) { super(name); // TODO Auto-generated constructor stub } public FirstThreadTest(ThreadGroup group, Runnable target, String name, long stackSize) { super(group, target, name, stackSize); // TODO Auto-generated constructor stub } public FirstThreadTest(ThreadGroup group, Runnable target, String name) { super(group, target, name); // TODO Auto-generated constructor stub } public FirstThreadTest(ThreadGroup group, Runnable target) { super(group, target); // TODO Auto-generated constructor stub } public FirstThreadTest(ThreadGroup group, String name) { super(group, name); // TODO Auto-generated constructor stub } // 重寫run方法,run方法的方法體就是現場執行體 public void run() { //當前線程: this System.out.println(this.getName() + " " + i); } public static void main(String[] args) { System.out.println(Thread.currentThread().getName()); new FirstThreadTest(888).start(); } }
2.Runnableide
/** * */ package testJava2.thread; /** * @author xxx.sjtu * @function * @date 2017年5月17日 * @version */ public class RunnableThreadTest implements Runnable { private int i; public RunnableThreadTest() { super(); // TODO Auto-generated constructor stub } public RunnableThreadTest(int i) { super(); this.i = i; } @Override public void run() { //當前線程: Thread.currentThread() System.out.println(Thread.currentThread().getName() + " " + i); } public static void main(String[] args) { System.out.println(Thread.currentThread().getName()); RunnableThreadTest rtt = new RunnableThreadTest(999); new Thread(rtt, "新線程1").start(); } }
3.Callablethis
/** * */ package testJava2.thread; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; /** * @author xxx.sjtu * @function * @date 2017年5月17日 * @version */ public class CallableThreadTest implements Callable<Integer> { @Override public Integer call() throws Exception { int i = 2017; System.out.println(Thread.currentThread().getName() + " " + i); return i; } public static void main(String[] args) { CallableThreadTest ctt = new CallableThreadTest(); FutureTask<Integer> ft = new FutureTask<>(ctt); new Thread(ft, "有返回值的線程").start(); try { System.out.println("子線程的返回值:" + ft.get()); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } } }