[JAVA100例]064、线程间通讯

王朝java/jsp·作者佚名  2008-05-31
宽屏版  字体: |||超大  

/**

* <p>Title: 线程间合作</p>

* <p>Description: 本实例使用二个线程共同合作绘制一个实体三角。</p>

* <p>Copyright: Copyright (c) 2003</p>

* <p>Filename: mainThread.Java</p>

* @version 1.0

*/

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("

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有