我有一个线程池执行程序,其中有多个线程正在同时运行。我想在所有线程完成后执行一些代码。我怎样才能做到这一点?

      for(String x : mList){
        mExecutor.execute(new Runnable(){

            @Override
            public void run() {
                //Do Stuff
                            }

        });

       //after all threads finish
       doOtherStuff();

最佳答案

这应该可以实现您所需要的:

for(String x : mList) {
   mExecutor.execute(new Runnable() {
        @Override
        public void run() {
            //Do Stuff
        }
   });
 }

 mExecutor.shutdown();
 mExecutor.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);

 //after all threads finish
 doOtherStuff();

关于java - Android ThreadPoolExecutor和join(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11376257/

10-10 09:36