我遇到了一些挑战,我只是想确认我的知识是正确的。
你打算如何实现这一点?
例如,如果你的程序是用Java编写的,那么ERATOSTHENES测试应该在一个线程中运行,而蛮力测试应该在另一个线程中同时运行。最后,你的程序应该向屏幕报告基准测试的结果,然后退出。
是这样吗?
class TestMultitasking4{
public static void main(String args[]){
Thread t1=new Thread(){
public void run(){
System.out.println("task one");
}
};
Thread t2=new Thread(){
public void run(){
System.out.println("task two");
}
};
t1.start();
t2.start();
}
}
2条答案
按热度按时间eqqqjvef1#
这是不正确的。如果你运行程序,它只会启动2个线程,然后立即退出,因为你的主线程不会等待t1和t2的终止。
您应该:
有很多方法可以在不直接使用线程的情况下使用更高级的抽象来实现这一点。
vbopmzt12#
您的方法是正确的,尽管您可能希望通过在方法内部扩展
Thread
来避免创建匿名类。下一步是测量
Runnable
内的运行时间,并使用Thread.join()
等待线程完成,以便显示结果。确保使用System.nanoTime()
方法,而不是currentTimeMillis()
see here why。如果您想进一步探索Java标准库,请查看
java.util.concurrent
包中的内容,例如java.util.concurrent.ExecutorService
。