由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 哪位同修能帮我测试一下
相关主题
问题一枚大牛帮我看看这个test code为什么complie 不了啊
python下的expect讨论个java作业问题
有两道Java多线程的面试题能不能帮我看看?面试问题一问 (转载)
java concurrency时,你们用的callable还是runnable?真正的multi-threading是5个thread要5个cpu?那apache是真正的m
[合集] 弱问:C++ 里的Vector在Java里用什么替代比较好?a template counting - anybody understand this?
[合集] 再请教一个 编译错误 (转载)multi threading 还是 multi processing
笨笨的问一个JAVA小问题一个哈希表问题
关于process and threads的问题thread, semaphore, 问题。
相关话题的讨论汇总
话题: integer话题: thread话题: int话题: futuretask话题: count
进入Programming版参与讨论
1 (共1页)
N***m
发帖数: 4460
1
一小段code。我在学java concurrent,不知道多核电脑上运行会快多少?
是不是和核的数目基本线性的,如果thread_num % #cpu_core==0?
多核会不会自己优化?
==================================================
这段程序寻找给定范围内素数的个数。
[Main.java]
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class Main {
public static void main(String[] args) {
List> tasks = new ArrayList Integer>>();
int thread_num = 1; // number of thread
int num_per_thread = 2000000; // number to be processed in
each thread
for(int i=0;i Callable call = new FindPrime(i*num_per_thread +1,(i
+1)*num_per_thread );
FutureTask task = new FutureTask(
call);
tasks.add(task);
new Thread(task).start();
}
int count = 0;
try {
for(FutureTask t:tasks)
count += t.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}

System.out.println("number of prime found:"+count);
}
}
=======================================
[FindPrime.java]
import java.util.concurrent.Callable;
public class FindPrime implements Callable {
private int start,end,count;

public FindPrime(int start,int end) {
this.start = start;
this.end = end;
count = 0;
}

@Override
public Integer call() throws Exception {
for(int n=start;n<=end;n++) {
if(isPrime(n))
{
//System.out.print(n+" ");
count++;
}
}
//System.out.println();
return count;
}

public boolean isPrime(int k) {
if(k==1)
return false;
if(k==2)
return true;
for(int i=2;i<=Math.sqrt(k);i++) {
if(k%i==0)
return false;
}
return true;
}//

}
e********g
发帖数: 2524
2
你那个count++会不会出问题啊?

【在 N***m 的大作中提到】
: 一小段code。我在学java concurrent,不知道多核电脑上运行会快多少?
: 是不是和核的数目基本线性的,如果thread_num % #cpu_core==0?
: 多核会不会自己优化?
: ==================================================
: 这段程序寻找给定范围内素数的个数。
: [Main.java]
: import java.util.ArrayList;
: import java.util.List;
: import java.util.concurrent.Callable;
: import java.util.concurrent.ExecutionException;

N***m
发帖数: 4460
3
why?
我运行了几个参数,没发现什么问题。

【在 e********g 的大作中提到】
: 你那个count++会不会出问题啊?
1 (共1页)
进入Programming版参与讨论
相关主题
thread, semaphore, 问题。[合集] 弱问:C++ 里的Vector在Java里用什么替代比较好?
Check if the sum of two integers in an integer array eqauls to the given number [合集] 再请教一个 编译错误 (转载)
面试题 -算法?笨笨的问一个JAVA小问题
多线程编程前景如何?关于process and threads的问题
问题一枚大牛帮我看看这个test code为什么complie 不了啊
python下的expect讨论个java作业问题
有两道Java多线程的面试题能不能帮我看看?面试问题一问 (转载)
java concurrency时,你们用的callable还是runnable?真正的multi-threading是5个thread要5个cpu?那apache是真正的m
相关话题的讨论汇总
话题: integer话题: thread话题: int话题: futuretask话题: count