2 xiaoyan 12 xiaoyan_12 于 2013.08.07 14:59 提问

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个回答

hxn_217
hxn_217   2013.08.07 17:34
已采纳

你可以使用 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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!