java多线程传参及java并发量设置

java多线程传参及java并发量设置

ID:8807973

大小:16.95 KB

页数:5页

时间:2018-04-08

java多线程传参及java并发量设置_第1页
java多线程传参及java并发量设置_第2页
java多线程传参及java并发量设置_第3页
java多线程传参及java并发量设置_第4页
java多线程传参及java并发量设置_第5页
资源描述:

《java多线程传参及java并发量设置》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、多线程传参及多线程并发量控制多线程传参多线程传参的控制有两种:假设有线程类如下:PublicclassMyThread{privateintarg1;pirvateStringarg2;Setters;Getters;pubicMyThread(){super();}publicMuThread(intar1,Stringar2){this.arg1=ar1;this.arg2=ar2;}}1.构造方法通过在新建线程的时候,将参数传入到子线程构造函数中例如:for(intI=0;I<100;I+

2、+){MyThreadmt=newMyThread(参数1,参数2);Threadtd=newThread(t);Td.start();}2.属性设置通过在新建线程的时候,将参数Set到子线程的属性中例如:for(intI=0;I<100;I++){MyThreadmt=newMyThread();mt.setArg1(参数1);mt.setArg2(参数2);Threadtd=newThread(t);td.start();}并发量控制并发量的控制可以通过java中的并发信号量来控制示例代码i

3、mportjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;importjava.util.concurrent.Semaphore;publicclassTestSemaphore{ publicstaticvoidmain(String[]args){  //线程池  ExecutorServiceexec=Executors.newCachedThreadPool();  //只能个线程同时访

4、问  finalSemaphoresemp=newSemaphore(5);  for(intindex=1;index<21;index++){   finalintNO=index;   Runnablerun=newRunnable(){    publicvoidrun(){     try{      //获取许可      semp.acquire();      System.out.println("Accessing:"+NO);            Thread.sleep

5、((long)(Math.random()*1000));      //访问完后,释放      System.out.println("Release:"+NO);      semp.release();     }catch(InterruptedExceptione){     }    }   };   exec.execute(run);  }  //退出线程池  exec.shutdown(); }}混合代码代码importjava.util.concurrent.Executo

6、rService;importjava.util.concurrent.Executors;importjava.util.concurrent.Semaphore;publicclassTestWaitimplementsRunnable{//当前信号量intnt=0;//线程池ExecutorServiceservice=null;//全局信号量Semaphoresp=null;publicExecutorServicegetService(){returnservice;}publicvo

7、idsetService(ExecutorServiceservice){this.service=service;}publicSemaphoregetSp(){returnsp;}publicvoidsetSp(Semaphoresp){this.sp=sp;}publicintgetNt(){returnnt;}publicvoidsetNt(intnt){this.nt=nt;}publicstaticvoidmain(String[]args){//线程池ExecutorService

8、tservice=Executors.newCachedThreadPool();//设定多线程并发信号量finalSemaphoretsp=newSemaphore(10);intcnt=100;for(inti=1;i<=cnt;i++){System.out.println("addtheNo.["+i+"]threadinthreadserveice!");Testt=newTest();t.setNt(i);t.setService(tservice);t.setSp(tsp);Thr

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

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

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