Improved concurrent Java processes

Saved in:
Bibliographic Details
Title: Improved concurrent Java processes
Authors: Ntlahla, Mbalentle Apelele Wiseman
Publisher Information: Rhodes University
Faculty of Science, Computer Science
Publication Year: 2021
Collection: SEALS Digital Commons (South East Academic Libraries System, South Africa)
Subject Terms: Java (Computer program language), Computer multitasking, Sequential processing (Computer science), Parallel programming (Computer science), Simultaneous multithreading processors
Description: The rise in the number of cores in a processor has resulted in computer programmers needing to write concurrent programs to utilize the extra available processors. Concurrent programming can utilize the extra processors available in a multi-core architecture. However, writing concurrent programs introduces complexities that are not encountered in sequential programming (race conditions, deadlocks, starvation, liveness, etc., are some of the complexities that come with concurrent programming). These complexities require programming languages to provide functionality to help programmers with writing concurrent programs. The Java language is designed to support concurrent programming, mostly through threads. The support is provided through the Java programming language itself and Java class libraries. Although concurrent processes are important and have their own advantages over concurrent threads Java has limited support for concurrent processes. In this thesis we attempt to provide the same support that Java has for threads through the java.util.concurrent library to processes. This is attempted to be done through a Java library (za.co.jcp). The library will provide synchronisation methods of multiple processes, Java process shared variables, atomic variables, process-safe data structures, and a process executors framework similar to that of the executor framework provided by Java for threads. The two libraries' similarities, and performance is analyzed. The analysis between the two libraries is performed to compare the code portability, ease of use, and performance difference between the two libraries. The results from the project have shown that it is possible for Java to provide support for concurrency through processes and not only threads. In addition from the benchmarks performed the performance of the za.co.jcp library is not significantly slower than the current java.util.concurrent thread library. This means that Java concurrent applications will also now be able to use cooperating processes rather than ...
Document Type: master thesis
File Description: computer; online resource; application/pdf; 1 online resource (149 pages); pdf
Language: English
Relation: http://hdl.handle.net/10962/192129; vital:45198; http://vital.seals.ac.za:8080/vital/access/manager/Repository/vital:45198
Availability: http://hdl.handle.net/10962/192129
http://vital.seals.ac.za:8080/vital/access/manager/Repository/vital:45198
Rights: Ntlahla, Mbalentle Apelele Wiseman ; Attribution 4.0 International (CC BY 4.0) ; Open Access
Accession Number: edsbas.DB26A7C7
Database: BASE
Be the first to leave a comment!
You must be logged in first