创建线程的三种方式分享
下文笔者讲述在java代码中创建线程的三种方式分享,如下所示
创建线程的示例分享
实现思路: 方式一:继承 Thread 类 方式二:实现 Runnable 接口 方式三:实现 Callable 接口例:
创建线程的示例分享
继承Thread类
定义一个Thread类的子类,重写run方法 run()方法就是线程要执行的业务逻辑方法 创建自定义的线程子类对象 调用子类实例的start()方法来启动线程 public class MyThread extends Thread { @Override public void run() { System.out.println(Thread.currentThread().getName() + " run()方法正在执行..."); } } public class TheadTest { public static void main(String[] args) { MyThread myThread = new MyThread(); myThread.start(); System.out.println(Thread.currentThread().getName() + " main()方法执行结束"); } } ----运行以上代码,将输出以下信息---- main main()方法执行结束 Thread-0 run()方法正在执行...
实现Runnable接口
定义Runnable接口实现类MyRunnable,并重写run()方法 创建MyRunnable实例myRunnable,以myRunnable作为target创建Thead对象,该Thread对象才是真正的线程对象 调用线程对象的start()方法 public class MyRunnable implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName() + " run()方法执行中..."); } } public class RunnableTest { public static void main(String[] args) { MyRunnable myRunnable = new MyRunnable(); Thread thread = new Thread(myRunnable); thread.start(); System.out.println(Thread.currentThread().getName() + " main()方法执行完成"); } } ----运行以上代码,将输出以下信息---- main main()方法执行完成 Thread-0 run()方法执行中...
实现Callable接口
创建实现Callable接口的类myCallable 以myCallable为参数创建FutureTask对象 将FutureTask作为参数创建Thread对象 调用线程对象的start()方法 public class MyCallable implements Callable<Integer> { @Override public Integer call() { System.out.println(Thread.currentThread().getName() + " call()方法执行中..."); return 1; } } public class CallableTest { public static void main(String[] args) { FutureTask<Integer> futureTask = new FutureTask<Integer>(new MyCallable()); Thread thread = new Thread(futureTask); thread.start(); try { Thread.sleep(1000); System.out.println("返回结果 " + futureTask.get()); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + " main()方法执行完成"); } } ----运行以上代码,将输出以下信息---- Thread-0 call()方法执行中... 返回结果 1 main main()方法执行完成
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。