I have a class that’s a listener to a log server. The listener gets notified whenever a log/text is spewed out. I store this text in an arraylist.
I need to process this text (remove duplicate words, store it in a trie, compare it against some patterns etc).
My question is should i be doing this as an when the listener is notified? Or should i be creating a separate thread that handles the processing.
What is the best way to handle this situation?
Sounds like you’re trying to solve the Producer Consumer Problem, in which case – Yes, you should be looking at threads.
If, however, you only need to do very basic operations that take less than milliseconds per entry – don’t overly complicate things. If you use a TreeSet in conjunction with an ArrayList – it will automatically take care of keeping duplicates out. Simple atomic operations such as validating the log entry aren’t such a big deal that they need a seperate thread, unless new text is coming in at such a rapid rate that you need to need a thread to busy itself full time with processing new notifications.