欢迎来到天天文库
浏览记录
ID:8807973
大小:16.95 KB
页数:5页
时间:2018-04-08
《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
此文档下载收益归作者所有