daily pastebin goal
68%
SHARE
TWEET

Untitled

a guest Oct 12th, 2018 57 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. private static Queue<Integer> jobQueue = new LinkedList<>();
  2. private static Object lock = new Object();
  3.  
  4. ExecutorService producers = Executors.newFixedThreadPool(1);
  5. ExecutorService consumers = Executors.newFixedThreadPool(10);
  6.    
  7. producers.submit(() -> {
  8.             while (true) {
  9.                 Thread.sleep(2000);
  10.                 if (jobQueue.size() == 5) {
  11.                     System.out.println("Waiting to add");
  12.                     synchronized (lock) {
  13.                         lock.wait();
  14.                     }
  15.                 }
  16.                 synchronized (lock) {
  17.                     int value = new Random().nextInt(10);
  18.                     jobQueue.add(value);
  19.                     System.out.println("Added to list: " + value);
  20.                     lock.notifyAll();
  21.                 }
  22.             }
  23.         });
  24.    
  25. consumers.submit(() -> {
  26.             while (true) {
  27.                 try {
  28.                     if (!LB.getUpHostList().isEmpty()) {
  29.                         Host host = LB.getUpHostList().get(0);
  30.  
  31.                         if (host.isActive()) {
  32.                             String message;
  33.  
  34.                             if (jobQueue.size() == 0) {
  35.                                 System.out.println("Waiting to remove");
  36.                                 synchronized (lock) {
  37.                                     lock.wait();
  38.                                 }
  39.                             }
  40.                             synchronized (lock) {
  41.                                 message = jobQueue.remove().toString();
  42.                                 System.out.println("Removed from list: " + message);
  43.                                 lock.notifyAll();
  44.                             }
  45.  
  46.                             //TODO RBTRAN gelince bu fonksiyonun içi değişecek
  47.                             boolean isConnected = connect(host, message, 1);
  48.  
  49.                             if(!isConnected){
  50.                                 synchronized (lock) {
  51.                                     System.out.println("SAVED");
  52.                                     jobQueue.add(Integer.parseInt(message));
  53.                                     lock.notifyAll();
  54.                                 }
  55.                             }
  56.                         }
  57.                     }
  58.                 } catch (Exception e) {
  59.                     e.printStackTrace();
  60.                 }
  61.             }
  62.         });
  63.     }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top