写了个 排序的方法
然后 开了 4个线程 调用 排序方法
排序方法中有个 属于主类 的变量。定义操作为var++ 初值为0
等线程 运行完了
var的 值 我觉得 应该是 4
可是事实是不确定。
为什么  该怎么弄?同志们 帮忙。。

解决方案 »

  1.   

    问个别的吧
    我在主线程 里面新开了4个线程
    并启动 
    我想让这四个线程 启动后主线程暂停
    等他们运行完了 主线程 再运行。不知道有好方法没?
    我用isAlive 测试 线程结束没
    好像不行 测试结束 但还运行
    好像测试的只是当时线程 是否活跃
    我想测试线程 是否运行结束 应该用什么办法?
      

  2.   

    用信号判断。
    为每个线程生成一个对象,在线程运行函数结束时调用这个对象的notify方法,主线程如果调用了同一个对象的wait方法,就会阻塞到notify方法调用完成。这时就可以确定线程已经停止运行了。也可以用boolean变量的方法。
    你的第一个问题,如果没有对那个var进行synchronized保护,各个线程都对它操作,结果就是不确定的。
      

  3.   

    多线程操作需要注意加锁
    在你执行的那个方法上用synchronized
    public synchronized void method(){}这样就不会在一个线程中调用时影响到其他线程了