我在你上一个帖子答了。zk可以解决你的问题,你的这个锁顺序问题和加锁是同一个问题。你去看zk的资料,搞不定的话来找我。

解决方案 »

  1.   

    这个问题好像确实不太好解决。
    可以先创建线程,在启动(执行start)之前将线程加入一个List之类的容器中。然后再依次调用start启动,在获取锁之前,判断前一个线程是否已经执行了需要同步控制的部分。
      

  2.   


    现在我是按你这样写的,但是感觉不好,我是先确定顺序,然后让它们抢占,判断队列头是不是需要的锁,如果不是继续等待,但是这样造成了很多无谓的抢占
    我记得谁说过ReentrantLock就是这样实现fairlock的,不知道对不对
      

  3.   

    new ReentrantLock(true) 是公平的