Changeset 1f10959 for doc/theses/colby_parsons_MMAth/text/conclusion.tex
- Timestamp:
- Sep 6, 2023, 11:48:16 AM (9 months ago)
- Branches:
- master
- Children:
- 92d8cda
- Parents:
- aae9c17
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/colby_parsons_MMAth/text/conclusion.tex
raae9c17 r1f10959 5 5 % ====================================================================== 6 6 7 This thesis presented a suite of safe and efficient concurrency tools that provide users with the means to write scalable programs in \CFA through multiple avenues. 8 If users prefer the message passing paradigm of concurrency, \CFA now provides message passing tools in the form of a performant actor system and channels. 7 The goal of this thesis was to expand the concurrent support that \CFA offers to fill in gaps and support language users' ability to write safe and efficient concurrent programs. 8 The presented features achieves this goal, and provides users with the means to write scalable programs in \CFA through multiple avenues. 9 Additionally, the tools presented include safety and productivity features from deadlock detection, to detection of common programming errors, easy concurrent shutdown, and toggleable performance statistics. 10 Programmers often have preferences between computing paradigms and concurrency is no exception. 11 If users prefer the message passing paradigm of concurrency, \CFA now provides message passing utilities in the form of an actor system and channels. 9 12 For shared memory concurrency, the mutex statement provides a safe and easy-to-use interface for mutual exclusion. 10 13 The @waituntil@ statement aids in writing concurrent programs in both the message passing and shared memory paradigms of concurrency. 11 14 Furthermore, no other language provides a synchronous multiplexing tool polymorphic over resources like \CFA's @waituntil@. 12 13 These features are commonly used in conjunction to solve concurrent problems. 14 The @waituntil@ statement, the @mutex@ statement, and channels will all likely see use in a program where a thread operates as an administrator or server which accepts and distributes work among channels based on some shared state. 15 The @mutex@ statement sees use across almost all concurrent code in \CFA, since it is used with the stream operator @sout@ to provide thread-safe output. 16 While not yet implemented, the polymorphic support of the @waituntil@ statement could see use in conjunction with the actor system to enable user threads outside the actor system to wait for work to be done, or for actors to finish. 17 A user of \CFA does not have to solely subscribe to the message passing or shared memory concurrent paradigm. 18 As such, channels in \CFA are often used to pass pointers to shared memory that may still need mutual exclusion, requiring the @mutex@ statement to also be used. 15 This work successfully provides users with familiar concurrent language support, but with additional value added over similar utilities in other popular languages. 19 16 20 17 On overview of the contributions in this thesis include the following: … … 25 22 \item A @waituntil@ statement which tackles the hard problem of allowing a thread to safely synch\-ronously wait for some set of concurrent resources. 26 23 \end{enumerate} 24 25 The features presented are commonly used in conjunction to solve concurrent problems. 26 The @waituntil@ statement, the @mutex@ statement, and channels will all likely see use in a program where a thread operates as an administrator or server which accepts and distributes work among channels based on some shared state. 27 The @mutex@ statement sees use across almost all concurrent code in \CFA, since it is used with the stream operator @sout@ to provide thread-safe output. 28 While not yet implemented, the polymorphic support of the @waituntil@ statement could see use in conjunction with the actor system to enable user threads outside the actor system to wait for work to be done, or for actors to finish. 29 A user of \CFA does not have to solely subscribe to the message passing or shared memory concurrent paradigm. 30 As such, channels in \CFA are often used to pass pointers to shared memory that may still need mutual exclusion, requiring the @mutex@ statement to also be used. 27 31 28 32 From the novel copy-queue data structure in the actor system and the plethora of user-supporting safety features, all these utilities build upon existing concurrent tooling with value added.
Note: See TracChangeset
for help on using the changeset viewer.