将任务划分为更小的部分(多个线程)

时间:2016-06-24 14:00:41

标签: android multithreading

为了减少任务时间,我想将其拆分为254个线程!

   for (int i = 1; i < 255; i++) {

       final String ipAddress = host + i;

       Thread thread = new Thread() {
           @Override
           public void run() {

              // ping IP address
           }
       };

       thread.start();
   }

在串行方式中,它需要大约12.7分钟的长度,但是通过使用上面提到的分裂到254个线程,所有IP都会在~3秒内完成!

现在我想知道我的方法有任何潜在的问题吗?或者我是否以有效的方式完成了这项工作?

1 个答案:

答案 0 :(得分:1)

通过使用线程池可以提高效率,并节省在每次迭代中创建新线程的开销。尝试在池中使用不同数量的线程并测量运行时间,以便为场景获得最佳配置。

https://docs.oracle.com/javase/tutorial/essential/concurrency/pools.html