javaf's repositories

backoff-lock

Backoff Lock uses an atomic value for critical section execution, and is suitable for memory-limited architectures.

Language:JavaLicense:MITStargazers:2Issues:2Issues:0

array-queue

Array queue is a bounded lock-based FIFO queue using an array. It uses 2 separate locks for head and tail.

Language:JavaLicense:MITStargazers:1Issues:2Issues:0

clh-lock

CLH Queue Lock maintains a linked-list for threads waiting to enter critical section, and is suitable for cache-coherent architectures.

Language:JavaLicense:MITStargazers:1Issues:2Issues:1

combining-tree

A Combining Tree is an N-ary tree of nodes, that follows software combining to reduce memory contention while updating a shared value.

Language:JavaLicense:MITStargazers:1Issues:2Issues:0

elimination-backoff-stack

Elimination-backoff stack is an unbounded lock-free LIFO linked list, that eliminates concurrent pairs of pushes and pops with exchanges.

Language:JavaLicense:MITStargazers:1Issues:2Issues:0

fifo-read-write-lock

FIFO Read-write Lock blocks any new readers once a writer requests, thus preventing writer lock-out due to continual stream of readers.

Language:JavaLicense:MITStargazers:1Issues:2Issues:0

locked-queue

A Locked Queue in a concurrent FIFO queue that uses locks and conditions to block enqueue when queue is full, and dequeue when it is empty.

Language:JavaLicense:MITStargazers:1Issues:2Issues:0

mcs-lock

MCS Queue Lock maintains a linked-list for threads waiting to enter critical section, and is suitable for cache-less NUMA architectures.

Language:JavaLicense:MITStargazers:1Issues:2Issues:0

bitonic-network

Bitonic network is a balanced counting network that allows processes to decompose operations, like counting, and reduce memory contention.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

extra-bit

The bit is a basic unit of information in information theory, computing.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

simple-read-write-lock

Simple Read-write Lock uses a counter and a boolean flag to keep track of multiple readers and a writer, but does not prioritize writers.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

array-lock

Array Queue Lock maintains a fixed array for critical section execution, and is suitable for cache-less static memory architectures.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

array-stack

Array stack is a bounded lock-based stack using an array. It uses a common lock for both push and pop operations.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

backoff-stack

Backoff stack is an unbounded lock-free LIFO linked list, where pushes and pops synchronize at a single location.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

bathroom-lock

A Bathroom Lock allows N genders (thread types) to access a common bathroom (critical section) such that different genders do not clash.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

bowling-alley

Bowling Alley Management System assignment in Software Engineering Course.

Language:JavaLicense:MITStargazers:0Issues:3Issues:0

coarse-set

Coarse Set is a collection of unique elements maintained as a linked list. It uses a coarse grained lock, and useful when contention is low.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

dining-philosophers-problem

The dining philosophers problem is an example problem often used in concurrent algorithm design.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

extra-boolean

Boolean data type has two possible truth values to represent logic.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

fine-set

Fine Set is a collection of unique elements maintained as linked list. It uses fine grained locks, allowing pipelined traversal by threads.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

hello-world

A "Hello, World!" is an introductory computer program.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

javaf.github.io

A summary of programs written in Java.

License:MITStargazers:0Issues:1Issues:0

k-compare-single-swap

k-compare single-swap (KCSS) is an extension of CAS that enables atomically checking multiple addresses before making an update.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

optimistic-set

Optimistic Set is a linked-list based unique collection. It traverses the list twice per operation, only locking the nodes to be updated.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

periodic-network

Periodic network is a balanced counting network that allows processes to decompose operations, like counting, and reduce memory contention.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

savings-account

A savings account is used to store salary/savings in a bank. This is a concurrent object (RAM) based account. For educational purposes only.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

simple-reentrant-lock

A lock is re-entrant if it can be acquired multiple times by the same thread. Java already provides one. This for educational purposes only.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

simple-semaphore

Semaphore is a generalization of mutual exclusion locks. It allows at most N threads into critical section. Java has a built-in Semaphore.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0

tas-lock

Test-and-set Lock uses an atomic value for critical section execution, and is suitable for educational purposes only.

Language:JavaLicense:MITStargazers:0Issues:2Issues:1

ttas-lock

Test-test-and-set Lock uses an atomic value for critical section execution, and is suitable for low contention memory-limited architectures.

Language:JavaLicense:MITStargazers:0Issues:2Issues:0