Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package SkatingRing;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.Random;
- import java.util.concurrent.Callable;
- import java.util.concurrent.ExecutionException;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- import java.util.concurrent.Future;
- public class Demo {
- public static void main(String[] args) throws InterruptedException, ExecutionException {
- System.out.println("Good moning everyone we are opened!!!");
- final Random random = new Random();
- ExecutorService executor = Executors.newFixedThreadPool(4);
- final SkatingRink skatingRink = new SchoolSkatingRink();
- List<Future<String>> futureList = new ArrayList();
- for(int i = 0; i<10; i++){
- final Skater skater = new Skater("Skater-"+i);
- Future<String> future = executor.submit(new Callable<String>(){
- @Override
- public String call() throws Exception {
- int timeSkating = random.nextInt(7)*1000;
- System.out.println("START! "+Thread.currentThread().getName()+" & "+skater.getName()+" "+new Date()+" for "+timeSkating/1000+" sec.");
- Skates skates = skatingRink.getSkates(skater);
- Thread.sleep(timeSkating);
- skatingRink.returnSkates(skates, skater);
- return "FINISH!"+Thread.currentThread().getName()+" "+new Date();
- }
- }
- );
- futureList.add(future);
- }
- for(Future<String> fut : futureList){
- try {
- System.out.println(fut.get());
- }catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- }
- }
- executor.shutdown();
- System.out.println("Goodbye!");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement