Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ass.sivakfil.cvi3.stock.trader.solution;
- import io.reactivex.Observable;
- import io.reactivex.Scheduler;
- import io.reactivex.schedulers.Schedulers;
- import java.util.List;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- import java.util.stream.Collectors;
- import java.util.stream.IntStream;
- import ass.sivakfil.cvi3.stock.Stock;
- import ass.sivakfil.cvi3.stock.service.IStockService;
- import ass.sivakfil.cvi3.stock.service.RandomStockService;
- import ass.sivakfil.cvi3.stock.service.SlowStockService;
- import ass.sivakfil.cvi3.stock.trader.IStockTrader;
- import ass.sivakfil.cvi3.util.ThreadsUtil;
- public class CopyOfExecutorTrader implements IStockTrader {
- protected ExecutorService executors = Executors.newFixedThreadPool(10);
- public static void main(String[] args) {
- CopyOfExecutorTrader trader = new CopyOfExecutorTrader();
- trader.suggestStockToBuy(new RandomStockService(10, 10f, 10f, 1000L, 1000L, 0f));
- }
- @Override
- public String suggestStockToBuy(IStockService stockService) {
- // submit 10 futures to executors
- // wait for all 10 futures to be done
- // map futures to their values; handle exceptions!
- // find minimum value stock and suggest it
- /*for(int i = 0; i < 20; i++) {
- System.out.println(stockService.next());
- }*/
- Observable.range(0, 10)
- .flatMap(i ->
- {
- return Observable.just(i)
- .subscribeOn(Schedulers.io())
- .map((y) -> stockService.next());
- }
- )
- .forEach(System.out::println);
- ThreadsUtil.sleep(5000L);
- return "N/A";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement