【发布时间】:2015-04-23 12:45:47
【问题描述】:
我有一个类,每次循环迭代 10 次时都会使用 yield。我在 Java API 中读到,使用 yield 可能需要“详细的分析和基准测试以确保它实际上具有预期的效果”。我想知道我的收益实现是否正确,或者如果这些线程中的一个以上正在运行,我的收益实现是否会不起作用。代码如下:
public class FindIt extends Thread{
private int num;
private int begin;
private int end;
/**
* Class constructor.
* @param num
* @param begin
* @param end
*/
FindIt(int num, int begin, int end){
this.num = num;
this.begin = begin;
this.end = end;
}
/**
* This search method searches within the threads given interval for a number.
*/
public void search(){
for(int i = this.begin; i <= this.end; i++){
if( i % 10 == 0){
this.yield();
}
if (i == this.num){
System.out.println(num + " was found by thread: "+ this.getName());
}
}
}
【问题讨论】:
-
需要额外的什么?
-
“详细的分析和基准测试,以确保它实际上具有预期的效果。”
标签: java multithreading yield