A very useful well-written reference suitable for Java systems developers and as a second level text for students on computing science and IT oriented courses. Highly recommended!
Java is now becoming the preferred first programming language on many undergraduate courses in computing science and IT. It then becomes a suitable implementation vehicle for second level modules on networks, distributed systems, etc. A common topic on second level computing modules is concurrent processing (looking at the problems of message passing, accessing shared memory, race conditions, deadlocks, etc.). Traditionally C under the UNIX programming environment would have been used for practical implementation, e.g. forking processes, using pipes and sockets, etc. Java now becomes a viable alternative for studying many of these concepts.
Threads are an essential component of any but the simplest Java program and any first level Java text would introduce the concepts and discuss problems such as resource locking, i.e. using the synchronised modifier to control access to shared resources. 'Java Threads' extends this basic knowledge to a level required by sophisticated systems developers.
The first four chapters introduce basic concepts and tools describing how to create threads and the techniques used to synchronise access to code and data. Chapter five then presents case studies using the techniques, e.g. thread safe data structures (message queue, shared memory, circular linked list), a network server, etc. Following chapters then discuss thread scheduling (ending by developing a
CPUScheduleclass to schedule one's threads using a round-robin algorithm), advanced synchronisation problems (deadlock, race conditions, lock starvation) and the
ThreadGroupclass.
A very useful well-written reference suitable for Java systems developers and as a second level text for students on computing science and IT oriented courses. Highly recommended!