我对Java Threads
相当陌生,通常使用C进行并行化。要并行化具有与以下模式相同的模式的算法:
void traverse(node* p)
{
if (p->left)
#pragma omp task // p is firstprivate by default
traverse(p->left);
if (p->right)
#pragma omp task // p is firstprivate by default
traverse(p->right);
}
例如,我将使用
openMP
的任务指令。任务描述
我的问题是:
我如何用
Java Threads
实现相同的想法(任务)? 最佳答案
OpenMP的实用性确实使并行化稍微容易一些。
在Java中,您首先需要创建一个实现Runnable的类。
-示例:公共(public)类遍历实现Runnable
然后,您只需创建类并调用'run'即可启动线程。
private void traverse(node p)
{
Traverse t = null;
if (p.left)
t = new Traverse(p.left);
if (p->right)
t = new Traverse(p.right)
t.run(); // start thread. this call will not wait for run to finishes
}