Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package com.mycompany.app5;
- import java.util.concurrent.ExecutionException;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- import java.util.concurrent.Future;
- import java.util.concurrent.TimeUnit;
- public class Main2 {
- public static void main(String[] args) {
- try {
- // ExecutorService executor = Executors.newFixedThreadPool(5);
- ExecutorService executor = Executors.newFixedThreadPool(5);
- // 1) запуск задачи типа Runnable, используем лямбда выражение
- Runnable r = () -> {System.out.println("do something...");};
- executor.submit(r);
- executor.submit(new MyTask1());
- Future<String> result = executor.submit(new MyCallableTask());
- // 1) Ожидаем выполнение задачи и полуаем результат после ее завершения - используем метод get()
- // String res = result.get();
- // System.out.println("res=" + res);
- // 2) Проверяем статус выполнения задачи (используем метод isDone()) result и после ее выполения вызываем метод get()
- while(!result.isDone()){
- System.out.println("MyCallableTask is running...");
- TimeUnit.SECONDS.sleep(1);
- }
- String res = result.get();
- System.out.println("res=" + res);
- // ожидаем некоторое время для выполнения задач
- TimeUnit.SECONDS.sleep(2);
- // прекраащем выполнение пула потоков
- //executor.shutdownNow(); // shutdownNow - принудительное завершение
- //executor.shutdown(); // shutdown-ожидаем завершения, новые задачи запустить уже нельзя
- } catch (InterruptedException ex) {
- ex.printStackTrace();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
- class MyTask1 implements Runnable{
- @Override
- public void run() {
- System.out.println("MyTask.run");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement