2. 分析下面程序,写出画线语句的功能,并解释程序中if(left.n==8||right.n==8)表达式的用途是什么? --------------------------------------------------------------------------------------------------------------- class Left extends Thread{ int n=0; public void run(){ //(1) while(true){ n++; System.out.printf("\n%s","我在左面写字"); try{ sleep((int)(Math.random()*100)+100); //(2) } catch(InterruptedException e){ System.out.printf("wrong!") ; } } } } class Right extends Thread //(3) { int n=0; public void run(){ while(true){ n++; System.out.printf("\n%40s","我在右面写字"); try{ sleep((int)(Math.random()*100)+100); } catch(InterruptedException e){ System.out.printf("wrong!") ; } } } } class Example{ public static void main(String args[ ]){ Left left=new Left(); Right right=new Right(); left.start(); right.start(); while(true){ if(left.n==8||right.n==8) System.exit(0); } } }
时间: 2024-02-10 08:34:27 浏览: 156
51单片机源码程序-用if语句控制P0口8位LED的流水方向.zip
这是一个Java多线程编程的例子,程序中定义了两个线程Left和Right,分别表示左边和右边的人在写字。每个线程都有一个计数器n,用来计算写了多少个字。程序中的while(true)表示线程会一直运行下去。
程序中的if(left.n==8||right.n==8)表达式的作用是当左边或右边的人写了8个字时,程序就会退出。这是因为在main函数中,程序会一直执行while(true),但当左边或右边的人写了8个字时,就说明写字任务已经完成,程序可以结束运行了。
在每个线程的run()方法中,程序会打印一句话,表示这个人正在写字。其中,System.out.printf("\n%s","我在左面写字")表示打印左边的人正在写字,\n表示换行。System.out.printf("\n%40s","我在右面写字")表示打印右边的人正在写字,并且在左侧空出40个字符的位置,使得右边的话与左边的话对齐。
程序中的sleep((int)(Math.random()*100)+100)表示线程会随机休眠100~200毫秒的时间,模拟人写字的速度不一样。
阅读全文