如下阻塞队列+线程的代码,很常见,当服务停止时,如何停止被BlockingQueue阻塞的线程?
1 | BlockingQueue<Integer> blockingQueue = new ArrayBlockingQueue(10); |
方法是当服务停止时,触发一个操作,给blockingQueue放一个特殊的元素,如上面,传一个值为-1的元素代表停止事件,线程取到这个特殊元素时就跳出循环:
1 | final int STOP_CODE = -1; |
Just for fun.
如下阻塞队列+线程的代码,很常见,当服务停止时,如何停止被BlockingQueue阻塞的线程?
1 | BlockingQueue<Integer> blockingQueue = new ArrayBlockingQueue(10); |
方法是当服务停止时,触发一个操作,给blockingQueue放一个特殊的元素,如上面,传一个值为-1的元素代表停止事件,线程取到这个特殊元素时就跳出循环:
1 | final int STOP_CODE = -1; |
微信支付
支付宝
比特币