我试图一次运行2个不同的线程,但无法做到这一点。线程_1和线程_2运行,但是它们之间的差约为500毫秒。我在代码中的任何地方都没有使用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);
}
我已经完成了google并浏览了一些文档。但是无法做到。
任何人都可以给我一些想法或方法。
帮助将不胜感激。
最佳答案
How to make run thread simultaneously or in parallel?
作为程序员,它只能在多处理器计算机上使用。在单处理器上,一次只能运行一个线程,由JVM(和OS)选择运行哪个线程。
How to make thread run fast ?
您可以尝试(如您所做的那样),但是总体控制仅适用于JVM(和OS)。
但是,增加线程的优先级并不意味着它会快速运行。它只会使该线程比其他线程更频繁地运行。也就是说,操作系统可能会(或可能不会)选择更多。时间比其他线程多。
详细了解此link。也检查this。
关于java - 一次运行多线程并让线程快速运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13743370/