Advertisement
osipyonok

SP_Lab4_Main

Dec 25th, 2016
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.26 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.HashSet;
  3. import java.util.Scanner;
  4. import java.util.Set;
  5.  
  6. public class Main {
  7.     private static final String BROKER_URL = "tcp://localhost:61616?jms.prefetchPolicy.all=1000";
  8.     private static final Set<String> TOPICS = new HashSet<>(Arrays.asList("F" , "G"));// , "test_topic2"
  9.     static TopicProducer ck = null;
  10.    
  11.     public static void main(String[] args) throws Exception{
  12.         Scanner sc = new Scanner(System.in);
  13.         System.out.print("Введiть х: ");
  14.         Process proc = Runtime.getRuntime().exec("java -classpath E:\\Eclipse_jee\\workspace\\CalcF\\build\\classes;E:\\Eclipse_jee\\workspace\\CalcF\\javax.jms.jar;E:\\Eclipse_jee\\workspace\\CalcF\\activemq-all-5.14.3.jar CalcF");
  15. //      ProcessBuilder proc = new ProcessBuilder("java.exe" , "-cp" , "javax.jms.jar,activemq-all-5.14.3.jar" , "CalcF");
  16. //      Process pr = proc.start();
  17.         Integer x = sc.nextInt();
  18.         for (String topic : TOPICS)
  19.         {
  20.             TopicProducer producer = new TopicProducer(BROKER_URL, topic, x);
  21.             if(ck == null)ck = producer;
  22.             thread(producer, true);
  23.         }
  24.         Boolean interrupt = false;
  25.         Boolean ask = true;
  26.         for(int i = 0 ; !interrupt ; ){
  27.             Thread.sleep(50);
  28.             i += 50;
  29.             if(ck.global_done){
  30.                 boolean rf = ck.result_f;
  31.                 boolean rg = ck.result_g;
  32.                 System.out.println("f(" + x + ") && g(" + x + ") = " + (rf && rg));
  33.                 //proc.destroy();
  34.                 return;
  35.             }
  36.             if(i >= 10000 && ask){
  37.                 String ans = "";
  38.                 System.out.printf("Бажаєте припинити обрахунки?\n\tn - нi, продовжити, \n\tno - нi, продовжити та не питати більше, \n\telse - так, зупинити обрахунки\n");
  39.                 ans = sc.next();
  40.                 switch (ans) {
  41.                     case "n":
  42.                         break;
  43.                     case "no":
  44.                         ask = false;
  45.                         break;
  46.                     default:
  47.                         interrupt = true;
  48.                         break;
  49.                 }
  50.                 i = 0;
  51.             }
  52.         //  proc.destroy();
  53.         }
  54.     }
  55.     public static void thread(Runnable runnable, boolean daemon)
  56.     {
  57.         Thread brokerThread = new Thread(runnable);
  58.         brokerThread.setDaemon(daemon);
  59.         brokerThread.start();
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement