Changes between Version 4 and Version 5 of JavaParty/TransparentThreads
- Timestamp:
- 01/17/07 10:40:50 (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
JavaParty/TransparentThreads
v4 v5 3 3 Since JavaParty 1.07a 4 4 5 == Introduction == 5 With transparent distributed threads, JavaParty provides unmodified Java thread semantics regarding synchronization and thread control in the distributed environment. 6 6 7 With transparent distributed threads, JavaParty provides unmodified Java thread semantics regarding synchronization and thread control in the distributed environment. 8 Transparent synchronization 7 == Transparent synchronization == 9 8 10 9 Unlike in RMI and other RPC-style middle-ware platforms, synchronization semantics in JavaParty is the transparent extension from one virtual machine to the whole distributed environment. 11 Synchronization reentrance 10 11 === Synchronization reentrance === 12 12 13 13 In JavaParty, a distributed thread is allowed to re-enter an once acquired monitor no matter how many interleaving remote invocations are on the stack in between. This extends the Java thread semantic from one virtual machine to the whole distributed JavaParty environment. … … 15 15 With RMI and other RPC-style middle-ware platforms, re-entering a synchronization with interleaving remote method calls causes a dead-lock of the running application thread. 16 16 17 See also wiki:JavaParty/DistributedThreads and the paper "Transparent Distributed Threads for Java".17 See also wiki:JavaParty/DistributedThreads and the paper [http://www.ipd.uka.de/JavaParty/archives/p147.pdf "Transparent Distributed Threads for Java"]. 18 18 19 == Synchronized blocks ==19 === Synchronized blocks === 20 20 21 21 Besides synchronized methods, the Java language has so called synchronized blocks that are blocks of code synchronized on an arbitrary object. The object used for synchronization has not necessarily to be the one the surrounding method belongs to. In JavaParty, synchronized blocks are supported on arbitrary objects whether they are local or remote. This is possible because KaRMI supports "Remote Monitor Access (RMA)". JavaParty uses this feature to acquire the monitor of the object on the remote node, if the argument to the synchronized block statement is detected to be remote at runtime. … … 23 23 With a middle-ware platform like RMI or pure KaRMI blocks synchronized on remote objects are not possible, because the synchronization is acquired on the remote reference instead of the remote object itself. 24 24 25 See also wiki:JavaParty/RMA and the paper "Transparent Distributed Threads for Java".25 See also wiki:JavaParty/RMA and the paper [http://www.ipd.uka.de/JavaParty/archives/p147.pdf "Transparent Distributed Threads for Java"]. 26 26 27 27 == Transparent thread control == … … 31 31 With RMI, management of distributed threads is not possible, because interrupt signals only reach the local Java thread. If this thread is currently waiting in a remote method execution, the signal to get stuck at the local node waiting for the remote invocation to return. If the interruption is the only signal set to the thread this also causes a dead-lock. 32 32 33 See also the paper "Transparent Distributed Threads for Java".33 See also the paper [http://www.ipd.uka.de/JavaParty/archives/p147.pdf "Transparent Distributed Threads for Java"]. 34 34 35 35 == Identification of transparent distributed threads ==
