没有任何数据可供显示
开源项目社区 | 当前位置 : |
|
www.trustie.net/open_source_projects | 主页 > 开源项目社区 > concurrentadt |
concurrentadt
|
0 | 0 | 29 |
贡献者 | 讨论 | 代码提交 |
Concurrent ADT Experiment FrameworkThis project aims to evaluate different concurrent non-blocking abstract data types and compare their performance.Substantial research has gone into non-blocking algorithms over the past 15 years, and non-blocking algorithms have been discovered for many common data structures. Non-blocking algorithms also called wait-free and lock-free algorithms. An algorithm is said to be wait-free if every thread will continue to make progress in the face of arbitrary delay (or even failure) of other threads. By contrast, a lock-free algorithm requires only that some thread always make progress. Non-blocking algorithms are used extensively at the operating system and JVM level for tasks such as thread and process scheduling. While they are more complicated to implement, they have a number of advantages over lock-based alternatives -- hazards like priority inversion and deadlock are avoided, contention is less expensive, and coordination occurs at a finer level of granularity, enabling a higher degree of parallelism.
In this project we use the functionality of java.util.concurrent.atomic.AtomicReference in order to perform atomic operations (like "CAS") on shared memory. The compare-and-swap CPU instruction ("CAS") is a special instruction that atomically compares the contents of a memory location to a given value and, if they are the same, modifies the contents of that memory location to a given new value. The result of the operation must indicate whether it performed the substitution. This can be done either with a simple Boolean response (this variant is often called compare-and-set), or by returning the value read from the memory location (not the value written to it).
Source Structure In the Source tab you can browse to svn\trunk\concurrentadt\ConcurrentADT where you can find the following four directories:
data_experiment_reports - Contains the results of the experiment in *.csv or *.xsl format. executables - contains *.jar and *.bat files that produced the results of the experiment. src - Contains the source code of the project in the following sub-folding structure: control domain queue stack workers uml - Contains a class diagram that represents the architecture of the Concurrent ADT Experiment Framework.