专栏名称: Guo_1_9
目录
相关文章推荐
51好读  ›  专栏  ›  Guo_1_9

模拟可取消任务的股票交易处理程序(百万订单)(FutureTask类)

Guo_1_9  · 掘金  ·  · 2018-02-15 09:09

正文

请到「今天看啥」查看全文


int MAX_NUMBER_OF_ORDER = 1_000_000 ; //交易订单 //1、创建数量为1000的线程池来执行订单。经过测试1000个线程,CPU维持在70%-80%左右。 static private ExecutorService executor = Executors.newFixedThreadPool( 1000 ); //2、创建ArrayList来保存执行执行订单的引用 static private List<Future> ordersToProcess = new ArrayList<>(); /** * 创建内部私有类OrderExecutor以处理订单执行的业务逻辑。 * OrderExecutor实现了Callable接口以支持异步调用。 */ public static class OrderExecutor implements Callable { int id = 0 ; int count = 0 ; //3、传入整型变量id来记录订单编号。 public OrderExecutor ( int id) { this .id = id; } @Override public Object call () throws Exception { try { //4、将技术设为1000,每次计数前,让线程休眠一段不同的时间 while (count < 1000 ) { count++; //5、通过让线程休眠一段不同的时间,模拟现实中每个订单需要不同的处理时间。 Thread.sleep( new Random( System.currentTimeMillis() % 10





请到「今天看啥」查看全文