【发布时间】:2016-03-10 08:09:50
【问题描述】:
我正在尝试并行运行多个线程。我试图通过拥有多个线程实例来实现这一点。我的假设是它将同时执行;但是,线程是按顺序执行的。
这是我测试的一个简单代码:
new Thread(new Runnable() {
@Override
public void run() {
for (int i=0; i<100; i++) {
LMLog.info("THREAD", "Counting " + i + " in Thread A");
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
for (int i=0; i<100; i++) {
LMLog.info("THREAD", "Counting " + i + " in Thread B");
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
for (int i=0; i<100; i++) {
LMLog.info("THREAD", "Counting " + i + " in Thread C");
}
}
}).start();
而且日志显示for循环正在一个接一个地执行
在 Thread A 中从 0 计数到 99,然后在 Thread B 和 Thread C 中进行相同的计数。
基于此,我得出结论,它们并没有像我想象的那样并行执行,而是按顺序执行。
那我怎样才能在Android中实现并行执行呢?
【问题讨论】:
-
100在 CPU 时间中的含义是什么?我怀疑由此可以获得任何有价值的数据。 -
在每个循环中添加
Thread.sleep(100)并重新运行您的代码
标签: java android multithreading android-studio