广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州Callable和Future如何创建线程?_北大青鸟IT软件学校

作者:邓华发布时间:2021-01-15分类:Java技术浏览:999


导读:Java是现在非常主流的编程语言之一,很多人想转行学习IT,首选Java语言。那么,Callable和Future如何创建线程呢?下面就让我们一起来看看惠州北大青鸟老师是怎么回答的。

Java是现在非常主流的编程语言之一,很多人想转行学习IT,首选Java语言。那么,Callable和Future如何创建线程呢?下面就让我们一起来看看惠州北大青鸟老师是怎么回答的。

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

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

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

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

实例

public class CallableThreadTest implements Callable<Integer> {

     public static void main(String[] args)

       {

           CallableThreadTest ctt = new CallableThreadTest();

           FutureTask<Integer> ft = new FutureTask<>(ctt);

           for(int i = 0;i < 100;i++)

           {

               System.out.println(Thread.currentThread().getName()+" 的循环变量i的值"+i);

               if(i==20)

               {

                   new Thread(ft,"有返回值的线程").start();

               }

           }

           try

           {

               System.out.println("子线程的返回值:"+ft.get());

           } catch (InterruptedException e)

           {

               e.printStackTrace();

           } catch (ExecutionException e)

           {

               e.printStackTrace();

           }


          }

     @Override

       public Integer call() throws Exception

       {

           int i = 0;

           for(;i<100;i++)

           {

               System.out.println(Thread.currentThread().getName()+" "+i);

           }

           return i;

       }

   }

想了解更多关于Java的知识吗?可以来惠州北大青鸟新方舟校区了解一下。

Java11.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表