This article looks thread management in a Swing GUI. There's more to success than simply spinning up background threads for long-running operations: you need to get the results of these operations back to the user, control the sequencing of not-quite-independent operations, and provide feedback to the user while the operation is running.
The result is a unified concurrency model providing both thread abstractions and event abstractions. We implemented the unified concurrency model in Haskell Our implementation demonstrates how to use these techniques by building an application-level thread library with support for multiprocessing and asynchronous I/O mechanisms in Linux. The thread library is type-safe, is relatively simple to implement, and has good performance. Application-level threads are extremely lightweight (scaling to 10,000,000 threads!) and our scheduler, which is implemented as a modular and extensible event-driven system, outperforms NPTL in I/O benchmarks.
"Ajax" stands for "Asynchronous JavaScript and XML." It is interesting to know that the term was coined just five years ago, on Feb 18, 2005 by user interface expert Jesse James Garrett. The elements of Ajax were already in use, but Garrett's 2005 blog entry gave a name to a powerful computing movement. In recognition of Ajax' birthday, SearchSOA.com reached out to Ajax thought leaders who, via email, formed a virtual roundtable discussion on where Ajax has come and how it is expected to evolve.
C. Hsiao, S. Narayanasamy, E. Khan, C. Pereira, and G. Pokam. Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems, page 193--205. ACM, (2017)
J. Protze, M. Schulz, D. Ahn, and M. Müller. Proceedings of the 27th International Symposium on High-Performance Parallel and Distributed Computing, page 144--155. ACM, (2018)
Y. Korkmaz, F. Korkmaz, I. Topaloglu, and H. Mamur. International Journal on Soft Computing, Artificial Intelligence and Applications (IJSCAI), 3 (4):
9(November 2014)