欢迎来到天天文库
浏览记录
ID:9187867
大小:21.09 KB
页数:18页
时间:2018-04-21
《java线程组基础入门》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、1线程组MyRunnable.javapackagecn.itcast_06;publicclassMyRunnableimplementsRunnable{@Overridepublicvoidrun(){for(intx=0;x<100;x++){System.out.println(Thread.currentThread().getName()+":"+x);}}}ThreadGroundDemo.javapackagecn.itcast_06;/**线程组:把多个线程组合到一起。*它可以对一批线程进行分类管理,Java允许程序
2、直接对线程组进行控制。*/publicclassThreadGroupDemo{publicstaticvoidmain(String[]args){//method1();//我们如何修改线程所在的组呢?//创建一个线程组//创建其他线程的时候,把其他线程的组指定为我们自己新建线程组method2();//t1.start();//t2.start();}privatestaticvoidmethod2(){//ThreadGroup(Stringname)ThreadGrouptg=newThreadGroup("这是一个新的组")
3、;MyRunnablemy=newMyRunnable();//Thread(ThreadGroupgroup,Runnabletarget,Stringname)Threadt1=newThread(tg,my,"林青霞");Threadt2=newThread(tg,my,"刘意");System.out.println(t1.getThreadGroup().getName());System.out.println(t2.getThreadGroup().getName());//通过组名称设置后台线程,表示该组的线程都是后台线
4、程tg.setDaemon(true);}privatestaticvoidmethod1(){MyRunnablemy=newMyRunnable();Threadt1=newThread(my,"林青霞");Threadt2=newThread(my,"刘意");//我不知道他们属于那个线程组,我想知道,怎么办//线程类里面的方法:publicfinalThreadGroupgetThreadGroup()ThreadGrouptg1=t1.getThreadGroup();ThreadGrouptg2=t2.getThreadGr
5、oup();//线程组里面的方法:publicfinalStringgetName()Stringname1=tg1.getName();Stringname2=tg2.getName();System.out.println(name1);System.out.println(name2);//通过结果我们知道了:线程默认情况下属于main线程组//通过下面的测试,你应该能够看到,默任情况下,所有的线程都属于同一个组System.out.println(Thread.currentThread().getThreadGroup().g
6、etName());}}2生产者消费者GetThread.javapackagecn.itcast_07;publicclassGetThreadimplementsRunnable{privateStudents;publicGetThread(Students){this.s=s;}@Overridepublicvoidrun(){while(true){s.get();}}}SetThread.javapackagecn.itcast_07;publicclassSetThreadimplementsRunnable{privat
7、eStudents;privateintx=0;publicSetThread(Students){this.s=s;}@Overridepublicvoidrun(){while(true){if(x%2==0){s.set("林青霞",27);}else{s.set("刘意",30);}x++;}}}Student,javapackagecn.itcast_07;publicclassStudent{privateStringname;privateintage;privatebooleanflag;//默认情况是没有数据,如果是t
8、rue,说明有数据publicsynchronizedvoidset(Stringname,intage){//如果有数据,就等待if(this.flag){try{this.wait();}catch(I
此文档下载收益归作者所有