一次运行多线程&让线程快速运行?

时间:2012-12-06 12:11:17

标签: java android multithreading

我试图一次运行2个不同的线程,但无法做到这一点。 Thread_1& Thread_2运行,但它们之间的差异大约是500ms。我在代码中的任何位置都没有使用wait()sleep()

问题:

1 -> How to make run thread simultaneously or in parallel?

2 -> How to make thread run fast ?

对于第二个问题,我使用了Thread.setPriority(Thread.MAX_PRIORITY);但其他时间差异是相同的。

更新了示例代码:与下面的示例相同,但两个线程之间需要更长的时间才能运行。

public static void main(String args[])
{
    MyThread thread1 = new MyThread("thread1: ");
    MyThread thread2 = new MyThread("thread2: ");
    thread1.start();
    thread2.start();
    boolean thread1IsAlive = true;
    boolean thread2IsAlive = true;
    do {
       if (thread1IsAlive && !thread1.isAlive()) {
           thread1IsAlive = false;
            System.out.println("Thread 1 is dead.");
       }
       if (thread2IsAlive && !thread2.isAlive()) {
           thread2IsAlive = false;
           System.out.println("Thread 2 is dead.");
       }
    } while(thread1IsAlive || thread2IsAlive);
}

我已经完成谷歌并经历了一些文档。但无法做到这一点。

任何人都可以给我一些想法或方法来做到这一点。

帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

  

如何同时或并行运行线程?

作为程序员,它只能在多处理器机器上使用。在单处理器上,一次只能运行一个线程,而JVM(和OS)可以选择运行哪个线程。

  

如何让线程快速运行?

您可以尝试(如您所做),但总体控制仅适用于JVM(和操作系统)。

然而,增加线程的优先级并不意味着它会快速运行。它只会让线程比其他线程更频繁地运行。即OS可能(或可能不)选择它更多。时间比其他线程。

查看此link了解更多详情。也请检查this

答案 1 :(得分:1)

你无法确定它也不能确定它。你调用thread.start()来启动一个线程。但它取决于操作系统何时启动。即使设置优先级你也无法完全实现此