解释下题目的意思:
   1、A是主线程,B线程是在A线程里启动的。 
   2、现在要做的事情就是A在不断的执行自己的事情,处理数据等操作。
   3、B是去网络请求数据,等请求完成后通知A线程我已经执行完成了,你可以拿数据做点什么。

解决方案 »

  1.   

    Class AThread extends Thread {  public void run() {
        BThread b = new BThread();
        b.start();
        ....
        b.join();
     }
    }
      

  2.   

    A线程一直执行没关系,关键B有没通知到A且A本来是否有准备要做B通知后的事情Thread A:while(working) {    doCommonWorks();    if(notifiedByB) {
            doRelatedWorks();
        }}
      

  3.   

    这个是解决的方法之一,但总是去判断一boolean值也不好呀!  
      

  4.   

    这个会让A线程卡住的,这样A线程就不能做事情,必须要等到B线程完成才可以
      

  5.   

    先把a线程wait掉,然后b去获取资源,等到回去到了资源再把a唤醒就可以了啊
      

  6.   

    不需要那么麻烦
    线程间共享一个阻塞队列 (BlockQueue接口的实现)
    A线程从队列上take数据即可,take方法是阻塞方法
    B线程将需要A处理的数据offer/put进队列就行了