Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MyObjHandler implements Runnable {
- private final BlockingQueue<MyObj> queue;
- public class MyObjHandler(BlockingQueue queue) {
- this.queue = queue;
- }
- public void run() {
- try {
- while (true) {
- MyObj obj = queue.take();
- // process obj here
- // ...
- }
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
- }
- }
- public void testHandler() {
- BlockingQueue<MyObj> queue = new ArrayBlockingQueue<MyObj>(100);
- MyObjectHandler handler = new MyObjectHandler(queue);
- new Thread(handler).start();
- // get objects for handler to process
- for (Iterator<MyObj> i = getMyObjIterator(); i.hasNext(); ) {
- queue.put(i.next());
- }
- // what code should go here to tell the handler
- // to stop waiting for more objects?
- }
- BlockingQueue<MyObj> queue = new ArrayBlockingQueue<MyObj>(100);
- MyObjectHandler handler = new MyObjectHandler(queue);
- Thread thread = new Thread(handler);
- thread.start();
- for (Iterator<MyObj> i = getMyObjIterator(); i.hasNext(); ) {
- queue.put(i.next());
- }
- thread.interrupt();
- thread.interrupt()
Add Comment
Please, Sign In to add comment