intellij idea-register-license server:http://idea.iteblog.com/key.php
参考:http://blog.csdn.net/heyutao007/article/details/19072675
(1)Callable规定的方法是call(),Runnable规定的方法是run().
(2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值得(3)call方法可以抛出异常,run方法不可以
步骤1:创建线程池:
ExecutorService pool = Executors.newCachedThreadPool();
步骤2:通过Runnable对象或Callable对象将任务提交给ExecutorService对象:
个人例子:
package helper.thread; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class MyThread implements Callable{ public static MyDeal myDeal = new MyDeal(); MyLogTest log = new MyLogTest(); private String packname; ExecutorService pool = null; public MyThread(String packname) { this.packname = packname; } //单个线程处理方法,如果要串行处理,在Object前面加上synchronized @Override public Object call() throws Exception { String flag = "0"; synchronized (this) { return "test";//具体实现 } return flag; } public String output(String name){ String back_str=""; try { //创建一个线程池 pool = Executors.newFixedThreadPool(100); back_str = pool.submit( new MyThread(name)).get().toString();//得到返回值 //关闭线程池 pool.shutdown(); }catch(Exception e){ log.level("debug",e.getMessage()); } System.out.println("back_str = "+back_str); return back_str; } }