线程的实例
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)
这样 就是你说的 先完成其中一个,然后再完成另一个