{'fraction_non_alphanumeric': 0.02418379685610641, 'fraction_numerical': 0.0, 'mean_word_length': 5.225563909774436, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Writing concurrent desktop applications in an actor-based programming model

GUI frameworks, like Swing, are typically not thread-safe. Desktop applications are thus often written in a purely single-threaded, event-based style. Introducing threads into such applications is not an easy task as potentially all parts of the application may be affected by this change.
 Instead of using a thread-based programming model, actor models are regaining attention lately. The actor-based CoBox model is based on isolated object-oriented components communicating via asynchronous method calls. The model is implemented in a Java extension, called JCoBox, and has been successfully used to implemented several concurrent desktop applications. In this paper we show how a typical desktop application is designed and implemented in JCoBox.