您的位置:首页 > 编程语言 > Java开发

Demo21 :线程间合作(使用二个线程共同合作绘制一个实体三角形)

2018-04-05 08:29 716 查看
package demo21;

/**
* <p>Title: 线程间合作</p>
* <p>Description: 本实例使用二个线程共同合作绘制一个实体三角。</p>
*/
public class mainThread{
public static int flag = 0;
int count = 10;
/**
*<br>方法说明:主方法
*<br>输入参数:
*<br>返回类型:
*/
public static void main(String[] arg){
new mainThread();
}
/**
*<br>方法说明:构造器,启动两个子线程。
*<br>输入参数:
*<br>返回类型:
*/
mainThread(){
thread1 t1 = new mainThread.thread1(this.count);
thread2 t2 = new mainThread.thread2(this.count);
//启动两线程
t1.start();
t2.start();
//让线程一首先工作。
flag = 1;
}
/**
*<br>类说明:内部类,继承了Thread,
*<br>类描述:实现了在输出每行前面的空格。
*/
class thread1 extends Thread{
int count1 = 0;
thread1(int i){
count1 = i;
}
public void run(){

while(true){
if(count1<=0) break;
if(mainThread.flag==1){

for(int i=0;i<count1;i++){
System.out.print(" ");
}
count1--;
mainThread.flag=2;
}
}
}
}
/**
*<br>类说明:内部类,继承了Thread,
*<br>类描述:实现了在输出每行第“*”号。并提供换行。
*/
class thread2 extends Thread{
int count2 = 0;
thread2(int i){
count2 = i;
}
public void run(){
int count = 0;
while(true){
if(count>=count2) break;
if(mainThread.flag==2){
for(int i=0;i<(count*2+1);i++){
System.out.print("*");
}
System.out.print("\n");
count++;
mainThread.flag=1;
}
}
}
}
}


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐