58java多线程实现(Callable实现多线程

92 阅读1分钟

Java 多线程实现(Callable实现多线程)

 

通过Callable实现多线程

从JDK1.5开始追加了一个新的开发包:

java.util.concurrent,这个开发包主要是进行高性能编程使用的,也就是说在这个开发包里面会提供一些高并发操作中才会时用到的类。

 

包里定义有一个新的接口:

@Functionalinterface

Public interface Callable<V> {

Public V call() throws Exception:

}

 

Runnable 中的run()方法虽然也是线程的主方法,但是其没有返回值,因为它的设计遵循了主方法的设计原理:

线程开始了就别回头。

但是很多时候需要一些返回值,例如:

当某些线程执行完成后有可能带来一些返回结果,这种情况下就只能够利用Callable来实现多线程。

 

范例:使用Callable定义线程主体类

import java util. concurrent Callable;

 

class MyThread implements

java util. concurrent Callable<string> {

@Override

public String call() throws Exception {

for(int х=0;х<20;х++) {

}

System. out.println ("卖票,х=“+х);

}

return"票卖完了 ,下次吧。。。”;

 

不管何种情况,如果要想启动多线程只有Tread类的start()方法,于是来分析一下Callabllable接口的定义、

 

范例:启动并取得多线程执行的结果

Public class TestDemo {

Public static void main (String[ ] args) throws Exception {

FutureTask<String> task=new FutureTask<String>(new MyThread());

New Thread(task).start();//启动多线程

System.out.println(task.get());

}

}

 

这种形式主要是返回处理结果。