翻訳と辞書
Words near each other
・ JCPenney Afterschool Fund
・ JCPenney Classic
・ JCPM Yakiimo Station
・ JCPS
・ JCQ
・ JCR
・ JCRC
・ JCreator
・ Jcrom
・ JCS
・ JCS (album)
・ JCSAT-4A
・ JCSAT-5A
・ JCSAT-RA
・ JCSEE
JCSP
・ JCSP re
・ JCSS
・ JCT
・ JCT College of Engineering and Technology
・ JCT FC
・ JCT600 Ltd
・ JCU
・ JCube
・ JCUKEN
・ JCVD (film)
・ JCVI
・ JCW
・ JCW Heavyweight Championship
・ JCW Tag Team Championship


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

JCSP : ウィキペディア英語版
JCSP

JCSP is an implementation of Communicating Sequential Processes (CSP) for the Java programming language.
Although CSP is a mathematical system, JCSP does not require in-depth mathematical skill, allowing instead that programmers can achieve well-behaved software just by following simple rules.
==Overview==
There are four ways in which multi-threaded programs can fail untestably:〔
*race conditions - shared variables may have indeterminate state because several threads access them concurrently without sufficient locking;
*deadlock - two or more threads reach a stalemate when they try to acquire locks or other resources in a conflicting way;
*livelock - similar to deadlock but resulting in endless wastage of CPU time;
*starvation - one or more threads fail ever to get any work done, compromising the intended outcome of the software algorithms.
Generally, it is not possible to prove the absence of these four hazards merely by rigorous testing. Although rigorous testing is necessary, it is not sufficient. Instead it is necessary to have a design that can demonstrate these four hazards don't exist. CSP allows this to be done using mathematics and JCSP allows it to be done pragmatically in Java programs.
The benefit of the basis in mathematics is that stronger guarantees of correct behaviour can be produced than would be possible with conventional ''ad hoc'' development. Fortunately, JCSP does not force its users to adopt a mathematical approach themselves, but allows them to benefit from the mathematics that underpins the library.
Note that the CSP term ''process'' is used essentially as a synonym for ''thread'' in Java parlance; a ''process'' in CSP is a lightweight unit of execution that interacts with the outside world via events and is an active component that encapsulates the data structures on which it operates.
Because the encapsulation of data is per-thread (per ''process'' in CSP parlance), there is typically no reliance on sharing data between threads. Instead, the coupling between threads happens via well-defined communication points and rendezvous. The benefit is that each thread can broadly be considered to be a "single-threaded" entity during its design, sparing the developer from the uncertainties of whether and where to use Java's ''synchronized'' keyword, and at the same time guaranteeing freedom from race conditions. JCSP provides for clear principles for designing the inter-thread communication in a way that is provably free from deadlock.
There is a clear similarity between some classes in the standard Java API (java.util.concurrent) and some in JCSP. JCSP's ''channel'' classes are similar to the ''BlockingQueue''. There is one important difference: JCSP also provides an Alternative class to allow selection between inputs; this capability is absent from the standard Java API. Alternation is one of the core concepts that CSP uses to model events in the real world.
Alternative was proven to operate correctly by exhaustive mathematical analysis of its state space, guaranteeing it can never in itself cause a deadlock
. As such, it epitomises the dependability of JCSP from its mathematical basis.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「JCSP」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.