Package com.packtpub.java7.concurrency.chapter5.recipe01.core

Examples of com.packtpub.java7.concurrency.chapter5.recipe01.core.Main


    // Create the executor and thee CompletionService using that executor
    ExecutorService executor=(ExecutorService)Executors.newCachedThreadPool();
    CompletionService<String> service=new ExecutorCompletionService<>(executor);

    // Crete two ReportRequest objects and two Threads to execute them
    ReportRequest faceRequest=new ReportRequest("Face", service);
    ReportRequest onlineRequest=new ReportRequest("Online", service);
    Thread faceThread=new Thread(faceRequest);
    Thread onlineThread=new Thread(onlineRequest);
   
    // Create a ReportSender object and a Thread to execute  it
    ReportProcessor processor=new ReportProcessor(service);
View Full Code Here


    // Create a random number generator
    Random random=new Random();
    // Create and send to the executor the ten tasks
    for (int i=0; i<10; i++){
      Integer number=new Integer(random.nextInt(10));
      FactorialCalculator calculator=new FactorialCalculator(number);
      Future<Integer> result=executor.submit(calculator);
      resultList.add(result);
    }
   
    // Wait for the finalization of the ten tasks
View Full Code Here

    // Create two user validation objects
    UserValidator ldapValidator=new UserValidator("LDAP");
    UserValidator dbValidator=new UserValidator("DataBase");
   
    // Create two tasks for the user validation objects
    TaskValidator ldapTask=new TaskValidator(ldapValidator, username, password);
    TaskValidator dbTask=new TaskValidator(dbValidator,username,password);
   
    // Add the two tasks to a list of tasks
    List<TaskValidator> taskList=new ArrayList<>();
    taskList.add(ldapTask);
    taskList.add(dbTask);
View Full Code Here

    // Initialize the parameters of the user
    String username="test";
    String password="test";
   
    // Create two user validation objects
    UserValidator ldapValidator=new UserValidator("LDAP");
    UserValidator dbValidator=new UserValidator("DataBase");
   
    // Create two tasks for the user validation objects
    TaskValidator ldapTask=new TaskValidator(ldapValidator, username, password);
    TaskValidator dbTask=new TaskValidator(dbValidator,username,password);
   
View Full Code Here

    // Writes the results to the console
    System.out.printf("Core: Printing the results\n");
    for (int i=0; i<resultList.size(); i++){
      Future<Result> future=resultList.get(i);
      try {
        Result result=future.get();
        System.out.printf("%s: %s\n",result.getName(),result.getValue());
      } catch (InterruptedException | ExecutionException e) {
        e.printStackTrace();
      }
    }
  }
View Full Code Here

    ExecutorService executor=(ExecutorService)Executors.newCachedThreadPool();

    // Create three tasks and stores them in a List
    List<Task> taskList=new ArrayList<>();
    for (int i=0; i<3; i++){
      Task task=new Task("Task-"+i);
      taskList.add(task);
    }

    // Call the invokeAll() method
    List<Future<Result>>resultList=null;
View Full Code Here

    ScheduledExecutorService executor=Executors.newScheduledThreadPool(1);
    System.out.printf("Main: Starting at: %s\n",new Date());

    // Create a new task and sends it to the executor. It will start with a delay of 1 second and then
    // it will execute every two seconds
    Task task=new Task("Task");
    ScheduledFuture<?> result=executor.scheduleAtFixedRate(task, 1, 2, TimeUnit.SECONDS);
   
    // Controlling the execution of tasks
    for (int i=0; i<10; i++){
      System.out.printf("Main: Delay: %d\n",result.getDelay(TimeUnit.MILLISECONDS));
View Full Code Here

   
    // Create an executor
    ThreadPoolExecutor executor=(ThreadPoolExecutor)Executors.newCachedThreadPool();
   
    // Create a task
    Task task=new Task();
   
    System.out.printf("Main: Executing the Task\n");

    // Send the task to the executor
    Future<String> result=executor.submit(task);
View Full Code Here

    // Create a list of products
    ProductListGenerator generator=new ProductListGenerator();
    List<Product> products=generator.generate(10000);
   
    // Craete a task
    Task task=new Task(products, 0, products.size(), 0.20);
   
    // Create a ForkJoinPool
    ForkJoinPool pool=new ForkJoinPool();
   
    // Execute the Task
    pool.execute(task);

    // Write information about the pool
    do {
      System.out.printf("Main: Thread Count: %d\n",pool.getActiveThreadCount());
      System.out.printf("Main: Thread Steal: %d\n",pool.getStealCount());
      System.out.printf("Main: Paralelism: %d\n",pool.getParallelism());
      try {
        TimeUnit.MILLISECONDS.sleep(5);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    } while (!task.isDone());
 
    // Shutdown the pool
    pool.shutdown();
   
    // Check if the task has completed normally
    if (task.isCompletedNormally()){
      System.out.printf("Main: The process has completed normally.\n");
    }

    // Expected result: 12. Write products which price is not 12
    for (int i=0; i<products.size(); i++){
View Full Code Here

  /**
   * Method that updates the prices of the assigned products to the task
   */
  private void updatePrices() {
    for (int i=first; i<last; i++){
      Product product=products.get(i);
      product.setPrice(product.getPrice()*(1+increment));
    }
  }
 
View Full Code Here

TOP

Related Classes of com.packtpub.java7.concurrency.chapter5.recipe01.core.Main

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.