java线程池以及future的应用

java线程池以及future的应用

ID:8966578

大小:35.50 KB

页数:2页

时间:2018-04-13

java线程池以及future的应用_第1页
java线程池以及future的应用_第2页
资源描述:

《java线程池以及future的应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、创建线程池,池里有多个线程,每个线程每次只读取某个字符串的一个字符,从第一个字符依次开始读取。全部读完后重新读。读三遍结束这个线程池。//线程池任务类publicclassMyTask3{//线程池引用privateExecutorServicees=null;//构造函数-创建带一定数量线程的线程池publicMyTask3(intnum){this.es=Executors.newFixedThreadPool(num);}//具体任务privateReadBuddha2rc=newReadBuddha2();//自定义方法-供外部调用publi

2、cObjectread()throwsException{//线程池(安排线程)执行任务-获取返回值后返回给调用者returnes.submit(rc);}//关闭线程池---线程池不关闭程序不会自行结束publicvoidshutdown(){if(es!=null){System.out.println("关闭线程池");es.shutdown();}}}//自定义任务-实现Callable接口-使调用的调用后可以使用返回值classReadBuddha2implementsCallable{//下标-从0开始privatestaticintin

3、dex=0;//字符数组privatestaticchar[]Buddha=newStringBuffer("法华经-提婆达多品:").append("天龙八部~人与非人~").append("皆遥见彼龙女成佛").toString().toCharArray();//读取次数privatestaticintreadCount=0;//具体任务--方法同步-保证线程池中的线程在某一时刻只会有一个来访问这个方法publicsynchronizedObjectcall(){//读取字符后--下标+1charc=Buddha[index++];//打印是哪

4、个线程读到了哪个字符System.out.println(Thread.currentThread().getName()+"readcahr="+c);//下标等于字符数组长度时为读完一次--下标再设为从0开始---读取次数+1if(index==Buddha.length){index=0;readCount++;//如果读取了3次--就返回"1"if(readCount==3){return"1";}}//默认都返回"0"return"0";}}调用//创建线程池任务类MyTask3t=newMyTask3(5);booleanb=false;

5、//调用多次任务for(inti=0;i<84;i++){//获取任务调用后的返回值Objecto=t.read();//如果返回值为"1"则不再循环-改变标志if(o.toString().equals("1")){b=true;break;}}//关闭线程池if(b){t.shutdown();}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。