和A类具体调用B的B_method()没什么关系吧,.

解决方案 »

  1.   

    你创建一个B类,同步不同步都是一样的,同步是为了,多个线程访问相同的资源为了避免资源冲突而设置同步的,比如你的方法B_method()从某个文件中读取数据,然后更改数据最后写入数据,并且你在A类中实现了很多个而不是一个B的实例(不实现一个的原因是因为一个根本不存在冲突)为了避免冲突需要实现同步,就像你所描述的方法就可以了.
      

  2.   

    如果你在A的A_method()方法中new 一个B类,
    接着调用B_method(),那么没有必要synchronized B_method(),
    因为你的多个线程用的是不同的B的实例。如果你的B_method()需要独享资源,那么你的B_method()因该
    这样写:
    protect static synchronized void B_method(){
        ......
    }
    在A_method()中用
    B.B_method()来调用。
    这样才真正同步,保护了独享资源。
      

  3.   

    我在B类的B_method中是向一个文件写信息,如果每个线程建立的B的实例都不一样的话,那么会不会发生在同一时间向同一个文件写信息的冲突!