[KP09] Weak Fairness Semantic Drawbacks in Java Multithreading

Conférence Internationale avec comité de lecture : Ada-Europe'09 Reliable Software Technologies, January 2009, pp.90-104, Series LNCS 5570,
Résumé: Abstract. With the development of embedded and mobile systems, Java is widely used for application programs and is also considered for implementing systems kernel or application platforms. It is the aim of this paper to exemplify some subtle programming errors that may result from the process queuing and awaking policy, which corresponds to a weak fairness semantic and which has been chosen for implementing the monitor concept in this language. Two examples show some subtle deadlocks resulting from this policy. The first example deals with process synchronization: processes seeking after partners for a peer-to-peer communication call a symmetrical rendezvous server. The second example concerns resource sharing according to a solution of the dining philosophers paradigm. In this example, several implementations are presented, the last ones aiming to provide deterministic process awakening. All these examples have been validated and simulated and this allows comparing their concurrency complexity and effectiveness. Our conclusion is, first, that the use of Java for multithreading programming necessitates sometimes additional shielding code for developing correct programs and, second, that a good acquaintance with several styles of concurrent programming helps designing more robust Java solutions, once the choice of the implementation language is irrevocable.


@inproceedings {
title="{Weak Fairness Semantic Drawbacks in Java Multithreading}",
author=" C. Kaiser and J. Pradat-Peyre ",
booktitle="{Ada-Europe'09 Reliable Software Technologies}",
series="LNCS 5570",