Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package hfdst4;
- import java.util.*;
- import java.util.concurrent.*;
- class PriemZoekerRunnable implements Runnable {
- protected int start,einde;
- protected ArrayList<Integer> r;
- public PriemZoekerRunnable(int start, int einde, ArrayList<Integer> r) {
- this.start = start;
- this.einde = einde;
- this.r = r;
- System.out.println("Priemdraad: #"+start+" -> "+ einde+" aangemaakt !");
- }
- @Override
- public void run() {
- 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);
- }
- }
- }
- }
- }
- class TestPriemRunnable {
- public static void main(String[] args) {
- int N = 1000;
- int nTaken = 10;
- int interval = N/nTaken;
- ArrayList[] list = new ArrayList[nTaken];
- ExecutorService e = Executors.newFixedThreadPool(nTaken);
- for (int i = 0; i < nTaken; i++) {
- list[i] = new ArrayList();
- e.execute(new PriemZoekerRunnable(i*interval, (i+1)*interval, list[i]));
- }
- e.shutdown();
- try {
- e.awaitTermination(100, TimeUnit.SECONDS);
- } catch(InterruptedException ex) {
- ex.printStackTrace();
- }
- for (ArrayList l : list)
- System.out.println(l);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement