main是主线程,并不是说属于BB和CC的,并且启动和停止的线程对象必须是同一个,不是说在BB那边new 一个,然后再CC那里又new 一个,这样的话,是两个线程对象,调用其中一个的方法并不会影响到另一个,您如果想让AA执行一阵,然后再由CC来停止的话,可以到CC前休眠一会,如果想说准确的做你说的,应该是这样的,main函数写在哪个类文件下都是可以的,或者把main写到另一个测试类中Test.java,这样就会看得很明显BB与CC的作用:------BB.java
public class BB {
AA thread1;
public BB(AA thread1) {
this.thread1 = thread1;
}
public void startThread(){
if (thread1 != null)
thread1.start();
}
public static void main(String[] args) {
AA aa = new AA();
//BB启动线程
BB bb = new BB(aa);
bb.startThread();
Thread.sleep(3000);
//CC停止线程
CC cc = new CC(aa);
cc.stopThread();
}
}
----CC.java
public class CC {
AA thread1;
public CC(AA thread1) {
this.thread1 = thread1;
}
public void stopThread(){
if (thread1 != null)
thread1.stopthread();
}
}