I wrote a Class 'Producer' which is continuously parsing files from a specific folder. The parsed result will be stored in queue for the Consumer.
public class Producer extends Thread { private BlockingQueue<MyObject> queue; ... public void run() { while (true) { //Store email attachments into directory ... //Fill the queue queue.put(myObject); sleep(5*60*1000); } } } My Consumer Class is continuously checking if there is something available in the queue. If so, it's performing some work on the parsed result.
public class Consumer extends Thread { private BlockingQueue<MyObject> queue; ... public void run() { while (true) { MyObject o = queue.poll(); // Work on MyObject 'o' ... sleep(5*60*1000); } } } When I run my programm, 'top' shows that the JAVA process is always on 100%. I guess it's because of the infinite loops.
Is this a good way to implement this or is there a more resource saving way for doing this?