alexandernst
alexandernst

Reputation: 15089

sending and receiving events in Java threads

I'm used to C++/Qt's concept of signals (emit/listen) and now I'm doing a project in Java which requires some sort of data sending/receiving mechanism.

My needs are:

Is this possible in Java, and how? (I'll appreciate a small compilable example/link)

Upvotes: 1

Views: 1390

Answers (2)

Darwyn
Darwyn

Reputation: 4804

Java by default doesn't have a simple event handling mechanism such as .Net's events or Qt's Signals and Slots. It does have the notion of Listeners in various java GUI frameworks but I don't think that's what you're looking for.

You should consider a pub-sub library like Google Guava's EventBus framework.

If you don't want to use a third party lib then I suggest you start looking into using one of the sub-classes of BlockingQueue. See the FileCrawler example from page 62 of Java Concurrency in Practice to see how to use a BlockingQueue to send events/data to worker threads.

If you're looking for a more complicated solution for message/event notifications across the process boundary or the local machine boundary then you may want to look into:

Upvotes: 1

RRR_J
RRR_J

Reputation: 347

not sure if this will match your exact query but have you tried CountDownLatch or CyclicBarrier?

http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CountDownLatch.html

http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CyclicBarrier.html

Upvotes: 0

Related Questions