龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

[JAVA100例]064、线程间通讯

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
/** * pTitle: 线程间合作/p * pDescription: 本实例使用二个线程共同合作绘制一个实体三角。/p * pCopyright: Copyright (c) 2003/p * pFilename: mainThread.Java/p * @version 1.0 */ public class mainThread{ public static

  /**
   * <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("
  
精彩图集

赞助商链接