Advertisement
Guest User

Untitled

a guest
Mar 14th, 2017
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.60 KB | None | 0 0
  1. package ass.sivakfil.cvi3.stock.trader.solution;
  2.  
  3. import io.reactivex.Observable;
  4. import io.reactivex.Scheduler;
  5. import io.reactivex.schedulers.Schedulers;
  6.  
  7. import java.util.List;
  8. import java.util.concurrent.ExecutorService;
  9. import java.util.concurrent.Executors;
  10. import java.util.stream.Collectors;
  11. import java.util.stream.IntStream;
  12.  
  13. import ass.sivakfil.cvi3.stock.Stock;
  14. import ass.sivakfil.cvi3.stock.service.IStockService;
  15. import ass.sivakfil.cvi3.stock.service.RandomStockService;
  16. import ass.sivakfil.cvi3.stock.service.SlowStockService;
  17. import ass.sivakfil.cvi3.stock.trader.IStockTrader;
  18. import ass.sivakfil.cvi3.util.ThreadsUtil;
  19.  
  20. public class CopyOfExecutorTrader implements IStockTrader {
  21.  
  22.     protected ExecutorService executors = Executors.newFixedThreadPool(10);
  23.    
  24.     public static void main(String[] args) {
  25.         CopyOfExecutorTrader trader = new CopyOfExecutorTrader();
  26.        
  27.        
  28.        
  29.         trader.suggestStockToBuy(new RandomStockService(10, 10f, 10f, 1000L, 1000L, 0f));
  30.     }
  31.    
  32.     @Override
  33.     public String suggestStockToBuy(IStockService stockService) {
  34.         // submit 10 futures to executors
  35.        
  36.         // wait for all 10 futures to be done
  37.        
  38.         // map futures to their values; handle exceptions!
  39.        
  40.         // find minimum value stock and suggest it
  41.        
  42.         /*for(int i = 0; i < 20; i++) {
  43.             System.out.println(stockService.next());
  44.         }*/
  45.        
  46.         Observable.range(0, 10)
  47.         .flatMap(i ->
  48.             {
  49.                 return Observable.just(i)
  50.                         .subscribeOn(Schedulers.io())
  51.                         .map((y) -> stockService.next());
  52.             }
  53.         )
  54.         .forEach(System.out::println);
  55.        
  56.         ThreadsUtil.sleep(5000L);
  57.        
  58.         return "N/A";
  59.     }
  60.  
  61.    
  62.    
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement