Intel® Threading Building Blocks (TBB) offers a rich and complete approach to expressing parallelism in a C++ program. It is a library that helps you take advantage of multi-core processor performance without having to be a threading expert. Threading Building Blocks is not just a threads-replacement library. It represents a higher-level, task-based parallelism that abstracts platform details and threading mechanisms for scalability and performance.
JuiPiter provides a mechanism to separate Swing tasks from long running non-UI tasks. The core of the JuiPiter mechanism is the Window Logic Decoupler. The decoupler, in addition to memory management and externalized strings, adds a single local Thread (non-Swing) per window that acts as the delegate. The single thread aspect solves the multi-Thread concurrency management that the developer must handle is using other options, i.e., SwingWorkerThread, FoxTrot, Spin.
All Swing and delegate tasks communicate through a message passing, publish and subscribe mechanism. Each task publishes messages through the decoupler. The use of queues allows the tasks to communicate without specific synchronization. There is one set of queues and a delegate thread for each Window, though a way to pass messages between Windows has been implemented. Along with this simple messaging infrastructure, JuiPiter also includes a number of Swing component helper classes and an extensive sample application, similar to the SwingSet, that demonstrates all the aspects of the JuiPiter framework. JuiPiter is designed in layers so that some developers may use just the messaging foundation while others will also use the component helpers and utility classes.