11)第一个程序:LeftAndRight.javapublicclassLeftAndRight{publicstaticvoidmain(Stringargs[]){Lefthandleft;//声明线程类对象Righthandright;left=newLefthand();//新建线程。right=newRighthand();left.start();//线程开始运行后,Lefthand类中的run方法将被执行。right.start();for(inti=0;i<=6;i++){System.out.println("我是主线程");}}}classLefthandextendsThread{publicvoidrun(){for(inti=1;i<=9;i++){System.out.println("我是左手线程");try{//线程执行一次输出后,休眠500ms(毫秒),使自己放弃CPU资源,//500ms时间到后,重新排队等待CPU的调度sleep(500);}catch(InterruptedExceptione){//如果线程在休眠期被打断,将抛出InterruptedException,//所以sleep方法需要在try⋯⋯catch语句块中被调用}}}}classRighthandextendsThread{publicvoidrun(){for(inti=1;i<=5;i++){System.out.println("我是右手线程");try{sleep(300);}catch(InterruptedExceptione){}}}}2)第二个程序:StudentAndTeacher.javapublicclassStudentAndTeacher{/***两个线程共享一个对象ComputerSumsum,在运行的过程中修改这个对象的成员变量sum。2*为了使结果尽量不依赖于当前CPU资源的使用情况,应当让线程主动调用sleep方法,让出CPU的控制权进入中断状态矚慫润厲钐瘗睞枥庑赖。*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubComputerSumsum=newComputerSum();Peopleteacher=newPeople("教师",100,sum);Peoplestudent=newPeople("学生",100,sum);teacher.start();student.start();}}classComputerSum{//线程共享的对象类ComputerSum,其中定义了一个数据成员sumintsum=0;publicvoidsetSum(intn){sum=n;}publicintgetSum(){returnsum;}}classPeopleextendsThread{//类People是Thread的子类ComputerSumcomputerSum;inttimeLength;People(Strings,inttimeLength,ComputerSumsum){//构造方法聞創沟燴鐺險爱氇谴净。setName(s);//设置Thread的名称this.timeLength=timeLength;//设置休眠时间this.computerSum=sum;//设置ComputerSum类的对象sum}publicvoidrun(){//重写Thread父类的run()方法for(inti=1;i<=5;i++){intm=computerSum.getSum();//取出computerSum对象中的数据成员sum残骛楼諍锩瀨濟溆塹籟。computerSum.setSum(m+1);//将数据成员sum的值加1System.out.println("我是"+getName()+",现在的和是"+computerSum.getSum());酽锕极額閉镇桧猪訣锥。//输出当前处于运行中的线程的信息try{sleep(timeLength);//线程休眠timeLength毫秒}catch(InterruptedExceptione){3}}}}3)第三个程序:StudentAndTeacher1.javapublicclassStudentAndTeacher1{/***StudentAndTeacher1为StudentAndTeacher的改进版本*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubComputerSumsum=newComputerSum();People1people=newPeople1(200,sum);people.teacher.start();people.student.start();}}classComputerSum1{//线程共享的对象类ComputerSum,其中定义了一个数据成员sumintsum=0;publicvoidsetSum(intn){sum=n;}publicintgetSum(){returnsum;}}classPeople1implementsRunnable{//类People是Thread的子类ComputerSumcomputerSum;inttimeLength;Threadteacher,student;People1(inttimeLength,ComputerSumsum){//构造方法teacher=newThread(this);//类People1实现了接口Runnableteacher.setName("教师");student=newThread(this);student.setName("学生");this.timeLength=timeLength;//设置休眠时间4this.computerSum=sum;//设置ComputerSum类的对象sum}publicsynchronizedvoidcomputer(Threadthread){intm=computerSum.getSum();//取出computerSum对象中的数据成员sum彈贸摄尔霁毙攬砖卤庑。computerSum.setSum(m+1);//将数据成员sum的值加1System.out.println("我是"+thread.getName()+",现在的和是"謀荞抟箧飆鐸怼类蒋薔。+computerSum.getSum());}publicvoidrun(){//重写Thread父类的run()方法for(inti=1;i<=5;i++){if(Thread.currentThread()==teacher){c...