Improved concurrent Java processes

dc.contributor.advisorWells, George C
dc.contributor.authorNtlahla, Mbalentle Apelele Wiseman
dc.date.accessioned2026-03-04T08:22:07Z
dc.date.issued29/10/2021
dc.description.abstractThe 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 be confined to using threads.
dc.description.degreeMaster's thesis
dc.description.degreeMSc
dc.format.extent149 pages
dc.format.mimetypeapplication/pdf
dc.identifier.otherhttp://hdl.handle.net/10962/192129
dc.identifier.urihttps://researchrepository.ru.ac.za/handle/123456789/5856
dc.languageEnglish
dc.publisherRhodes University, Faculty of Science, Department of Computer Science
dc.rightsNtlahla, Mbalentle Apelele Wiseman
dc.subjectJava (Computer program language)
dc.subjectComputer multitasking
dc.subjectSequential processing (Computer science)
dc.subjectParallel programming (Computer science)
dc.subjectSimultaneous multithreading processors
dc.titleImproved concurrent Java processes
dc.typeAcademic thesis

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Improved_concurrent_Java_processes_vital_45198.pdf
Size:
955.84 KB
Format:
Adobe Portable Document Format