Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package hfdst4;
- import java.util.*;
- import java.util.concurrent.*;
- class PriemZoekerCallable implements Callable<ArrayList<Integer>> {
- protected int start,einde;
- public PriemZoekerCallable(int start, int einde) {
- this.start = start;
- this.einde = einde;
- System.out.println("Priemdraad: #"+start+" -> "+ einde+" aangemaakt !");
- }
- @Override
- public ArrayList<Integer> call() {
- ArrayList<Integer> r = new ArrayList<>();
- for (int n = start; n <= einde; n++) {
- if (n >= 2) {
- boolean flag = true;
- for (int i = 2; i <= Math.sqrt(n); i++) {
- if (n%i == 0) {
- flag = false;
- break;
- }
- }
- if (flag == true) {
- // System.out.println("Priemgetal: " + n);
- r.add(n);
- }
- }
- }
- return r;
- }
- }
- class TestPriemCallable {
- public static void main(String[] args) {
- int N = 1000;
- int nTaken = 10;
- int interval = N/nTaken;
- ExecutorService e = Executors.newCachedThreadPool();
- Future[] f = new Future[nTaken];
- for (int i = 0; i < nTaken; i++) {
- // PriemZoekerCallable priemzoeker = new PriemZoekerCallable(i*interval, (i+1)*interval);
- // list[i] = priemzoeker.call();
- f[i] = e.submit(new PriemZoekerCallable(i*interval, (i+1)*interval));
- }
- e.shutdown();
- for (Future i : f) {
- try {
- System.out.println(i.get());
- } catch(Exception ex) {
- ex.printStackTrace();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement