首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

线程的范例

2012-07-26 
线程的实例package com.apach.jbpublic class threadDemo extends Thread { int flag public threadDemo

线程的实例
package com.apach.jb;

public class threadDemo extends Thread {
int flag;
public threadDemo(String name,int f){
  super(name);
  this.flag=f;
  }
public  void run(){
     char ch;
  System.out.println();
  System.out.print(getName()+" start: ");
  synchronized(this){
  if(flag==0){
  
   for(ch='a';ch<='z';ch++)
    System.out.print(ch+"  ");
  }
 
  else
   if(flag==1){
    for(ch='A';ch<='Z';ch++)
     System.out.print(ch+"  ");
    }
    System.out.print(getName()+" end!");
  }
}

    public static void main (String[] args) {
     threadDemo t1= new threadDemo("线程1",1);
     threadDemo t2= new threadDemo("线程2",0);
     t1.start();
     t2.start();
     System.out.println("active: "+t1.activeCount());
     }
    }
//我想让这个程序按同步机制对象t1,t2分别输出字母的大小写。当t1的进程执行完后,在执行t2的进程。但是不行

1 楼 神之小丑 2011-09-15   你的锁是this,也就是对t1 来说 就是t1,对t2来说就是t2,你这属于是多实例多线程,这两个没有资源竞争。
最简单的方法 就是在你的 这个类里 申明一个 static 的对象,以这个对象为锁,
例如 static Object obj=new Object();然后 在下面锁的时候 锁obj,synchronized(obj)
这样 就是你说的 先完成其中一个,然后再完成另一个

热点排行