import java.util.concurrent.Callable; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.FutureTask; public class Test { public static void main(String[] args) throws Exception { //实现线程方式1:通过new Runnable() 实现Thread,重写Runnable中的run方法 Thread thread1 = new Thread(new Runnable() { public void run() { method1(); } }); Thread thread3 = new Thread(new Runnable() { public void run() { method2(); } }); // 执行线程 thread1.start(); thread2.start(); Thread.sleep(10000);//睡10s //方式2 Thread myThread = new MyThread(); myThread.start(); //方式3 FutureTask<Boolean> future = new FutureTask<>(new Callable<Boolean>() { @Override public Boolean call() throws Exception { System.out.println("FutureTask running! "); return true; } }); new Thread(future).start();//托管给单独线程处理 //Future<?> futureResult = Executors.newCachedThreadPool().submit(future);//托管给线程池处理 //System.out.println("结果:"+futureResult.get()); //方式4 Lambda创建方式 new Thread(()-> System.out.println(Thread.currentThread().getName()+"lambad 创建thread running!")).start(); } public static void method1() { System.out.println("Method 1 is running!"); } public static void method2() { System.out.println("Method 2 is running!"); } } /** * 线程实现方式2:继承Thread类,重写run方法。 */ class MyThread extends Thread{ //线程实现方式2:继承Thread类,重写run方法。 public void run(){ //重写run方法 System.out.println("myThread -> myRun"); } }
JAVA 启动线程的几种方式
最新推荐文章于 2024-03-10 08:49:36 发布