Java创建线程(二)

(一)Java 中如何创建线程

1.Java提供了三种方法创建线程:

①实现Runnable接口的类;

继承Thread本身;

③通过CallableFuture创建线程。

2.Thread 和Runnable的区别

①:如果是一个类继承Thread--->不适合资源共享。但是如果实现了Runnable接口--->很容易实现资源共享

总结:

实现Runnable接口继承Thread类所具有的优势:

(1.)适合多个相同的程序代码的线程去处理同一个资源

(2)避免java中单继承的限制。

(3)增加程序的健壮性,代码可以被多个线程共享,代码和数据独立。

(4)线程池只能放入实现Runnablecallable  类线程不能直接放入继承Thread的类

3.具体的列子:

① Runnable接口   

     eg:

②:继承Thread来创建线程。【本质上与实现Runnable实例差不多。】

eg:(其它代码同上)

③:Callable和Future创建线程

  • 1. 创建 Callable 接口的实现类,并实现 call() 方法,该 call() 方法将作为线程执行体,并且有返回值。

  • 2. 创建 Callable 实现类的实例,使用 FutureTask 类来包装 Callable 对象,该 FutureTask 对象封装了该 Callable 对象的 call() 方法的返回值。

  • 3. 使用 FutureTask 对象作为 Thread 对象的 target 创建并启动新线程。

  • 4. 调用 FutureTask 对象的 get() 方法来获得子线程执行结束后的返回值。

     eg:

原文地址:https://www.cnblogs.com/not-alone/p/8525371.html