android中开启的循环线程

程序中有一个for循环语句调用线程:

if(toModify[j]==1) {
    getUpdate(methods_list[j],username, password); }

getUpdate 方法包含下面的代码:

new Thread(new Runnable() {
  public void run() {
      // *** some operations***
  }
}).start();

尽管对于cicle我可以同时运行每个线程,但是如果我想每个线程都是在前一个线程停止后再开启。我能使用下面的方法吗?

return 1;

使用上面的方法能让每个线程都是在前一个线程停止后再开启吗?

1个回答

你可以使用 RetrantLock

private final ReentrantLock lock = new ReentrantLock();
if(toModify[j]==1)        
  {   
      lock.lock();  // block until condition holds
 try {
   getUpdate(methods_list[j],username, password);         
 } finally {
   lock.unlock()
 }
} 

你也需要在线程上调用 join(),这个方法是从 getUpdate()方法中开启的

Thread thread = new Thread(new Runnable() { 
        public void run() { 
        // *** some operations*** 
        } 
        }); 
    thread.start();
    thread.join();
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问