250 lines
No EOL
14 KiB
HTML
250 lines
No EOL
14 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<title>CLiki: concurrency</title>
|
|
<link rel="alternate" type="application/atom+xml" title="ATOM feed of edits to current article"
|
|
href="https://www.cliki.net/site/feed/article.atom?title=concurrency">
|
|
<link rel="stylesheet" href="static/css/style.css">
|
|
<link rel="stylesheet" href="static/css/colorize.css">
|
|
</head>
|
|
|
|
<body>
|
|
<span class="hidden">CLiki - concurrency</span>
|
|
<div id="content"><div id="content-area"><div id="article-title">concurrency</div><div id="article">Doing more than one thing at a time.<p><ul>
|
|
<li>
|
|
<a href="bailout.html" class="internal">bailout</a> -
|
|
<a href="https://www.erlang.org/doc/design_principles/des_princ.html">Supervision trees</a> for Common Lisp
|
|
</li>
|
|
<li>
|
|
<a href="blackbird.html" class="internal">blackbird</a> -
|
|
Blackbird is a modern promise implementation
|
|
</li>
|
|
<li>
|
|
<a href="Bordeaux-Threads.html" class="internal">Bordeaux-Threads</a> -
|
|
Bordeaux-Threads lets you write multi-<a href="thread.html" class="category">thread</a>ed applications in a portable way
|
|
</li>
|
|
<li>
|
|
<a href="bt-semaphore.html" class="internal">bt-semaphore</a> -
|
|
simple semaphores for bordeaux-threads
|
|
</li>
|
|
<li>
|
|
<a href="Calispel.html" class="internal">Calispel</a> -
|
|
<a href="http://www.thoughtcrime.us/software/calispel/">Calispel</a> is a <a href="concurrency.html" class="category">concurrency</a> library for thread-safe message-passing channels, in the style of the occam programming language
|
|
</li>
|
|
<li>
|
|
<a href="chanl.html" class="internal">chanl</a> -
|
|
ChanL is a <a href="concurrency.html" class="category">concurrency</a> library built on top of <a href="bordeaux-threads.html" class="internal">bordeaux-threads</a> that provides channels as <a href="thread.html" class="category">thread</a>-synchronisation primitives
|
|
</li>
|
|
<li>
|
|
<a href="cl-actors.html" class="internal">cl-actors</a> -
|
|
A simple Common Lisp implementation of the <a href="http://en.wikipedia.org/wiki/Actor_model">actor model</a> of concurrency
|
|
</li>
|
|
<li>
|
|
<a href="cl-async.html" class="internal">cl-async</a> -
|
|
Cl-async is a asynchronous I/O library wrapping the <a href="http://docs.libuv.org/en/v1.x/">libuv</a> C library
|
|
</li>
|
|
<li>
|
|
<a href="cl-cuda.html" class="internal">cl-cuda</a> -
|
|
Cl-cuda is a library to use Nvidia CUDA in Common Lisp programs
|
|
</li>
|
|
<li>
|
|
<a href="cl-flow.html" class="internal">cl-flow</a> -
|
|
Asynchronous non-blocking concurrency in Common Lisp, similar to what green threads are for
|
|
</li>
|
|
<li>
|
|
<a href="cl-future.html" class="internal">cl-future</a> -
|
|
<a href="http://github.com/jpalmucci/cl-future/tree/master">Cl-future</a> is a simple way to achieve parallelism for common lisp on multiprocessor shared memory Unix machines
|
|
</li>
|
|
<li>
|
|
<a href="cl-gpu.html" class="internal">cl-gpu</a> -
|
|
cl-gpu is a translator from a subset of Common Lisp to <a href="https://www.cliki.net/CUDA" class="new">CUDA</a> for writing <a href="https://www.cliki.net/GPU" class="new">GPU</a> kernels
|
|
</li>
|
|
<li>
|
|
<a href="cl-muproc.html" class="internal">cl-muproc</a> -
|
|
<a href="http://common-lisp.net/project/cl-muproc/">CL-MUPROC</a> is an Erlang-inspired <a href="concurrency.html" class="category">concurrency</a> library available under the BSD license for <a href="Lispworks.html" class="internal">Lispworks</a>, <a href="OpenMCL.html" class="internal">OpenMCL</a>, <a href="SBCL.html" class="internal">SBCL</a>, <a href="CMUCL.html" class="internal">CMUCL</a>, and <a href="ACL.html" class="internal">ACL</a>
|
|
</li>
|
|
<li>
|
|
<a href="Eager Future2.html" class="internal">Eager Future2</a> -
|
|
Eager Future2 provides composable <a href="concurrency.html" class="category">concurrency</a> primitives that unify parallel and lazy evaluation, are integrated with CL's condition system, and have automatic resource management
|
|
</li>
|
|
<li>
|
|
<a href="green-threads.html" class="internal">green-threads</a> -
|
|
GREEN-THREADS is a portable library implementing green threads (lightweight, cooperatively multitasked, user threads) in Common Lisp
|
|
</li>
|
|
<li>
|
|
<a href="lparallel.html" class="internal">lparallel</a> -
|
|
lparallel is a new <a href="concurrency.html" class="category">concurrency</a> library
|
|
</li>
|
|
<li>
|
|
<a href="memento-mori.html" class="internal">memento-mori</a> -
|
|
<a href="https://github.com/zkat/memento-mori">memento-mori</a> is a library for writing robust, actor-based systems
|
|
</li>
|
|
<li>
|
|
<a href="pcall.html" class="internal">pcall</a> -
|
|
<a href="http://marijnhaverbeke.nl/pcall">PCall</a> is a <a href="concurrency.html" class="category">concurrency</a> library that implements simple 'result-oriented' parallelism on top of <a href="Bordeaux-Threads.html" class="internal">Bordeaux-Threads</a>
|
|
</li>
|
|
<li>
|
|
<a href="Petalisp.html" class="internal">Petalisp</a> -
|
|
Elegant code generation for high-performance computing
|
|
</li>
|
|
<li>
|
|
<a href="pretend-event-loop.html" class="internal">pretend-event-loop</a> -
|
|
This is a common lisp library that simulates an event loop
|
|
</li>
|
|
<li>
|
|
<a href="stmx.html" class="internal">stmx</a> -
|
|
STMX is an actively maintained, high-performance <a href="concurrency.html" class="category">concurrency</a> library providing Transactional Memory for Common Lisp
|
|
</li>
|
|
<li>
|
|
<a href="thread-pool.html" class="internal">thread-pool</a> -
|
|
thread-pool is library that allows asynchronous function execution from a static thread pool
|
|
</li>
|
|
<li>
|
|
<a href="threading-queue.html" class="internal">threading-queue</a> -
|
|
threading-queue is a CL macro to distribute work on several threads, feeding the data via thread-safe-queues over several steps
|
|
</li>
|
|
<li>
|
|
<a href="trivial-timers.html" class="internal">trivial-timers</a> -
|
|
Trivial-timers is a minimally portable implementation of the <a href="http://www.sbcl.org/manual/#Timers">SBCL timer extension</a> using <a href="Bordeaux-Threads.html" class="internal">Bordeaux-Threads</a>
|
|
</li>
|
|
</ul><p><a href="Thread.html" class="internal">Thread</a>s are a popular technique for concurrent programming:
|
|
<ul>
|
|
<li>
|
|
<a href="actors.html" class="internal">actors</a> -
|
|
<a href="https://github.com/aarvid/Actors">Actors</a> is an actors package for LispWorks
|
|
</li>
|
|
<li>
|
|
<a href="Bordeaux-Threads.html" class="internal">Bordeaux-Threads</a> -
|
|
Bordeaux-Threads lets you write multi-<a href="thread.html" class="category">thread</a>ed applications in a portable way
|
|
</li>
|
|
<li>
|
|
<a href="bt-semaphore.html" class="internal">bt-semaphore</a> -
|
|
simple semaphores for bordeaux-threads
|
|
</li>
|
|
<li>
|
|
<a href="cacle.html" class="internal">cacle</a> -
|
|
<a href="https://github.com/jlahd/cacle">cacle</a> implements an extensible cache <a href="data structure.html" class="category">data structure</a>
|
|
</li>
|
|
<li>
|
|
<a href="chanl.html" class="internal">chanl</a> -
|
|
ChanL is a <a href="concurrency.html" class="category">concurrency</a> library built on top of <a href="bordeaux-threads.html" class="internal">bordeaux-threads</a> that provides channels as <a href="thread.html" class="category">thread</a>-synchronisation primitives
|
|
</li>
|
|
<li>
|
|
<a href="cl-actors.html" class="internal">cl-actors</a> -
|
|
A simple Common Lisp implementation of the <a href="http://en.wikipedia.org/wiki/Actor_model">actor model</a> of concurrency
|
|
</li>
|
|
<li>
|
|
<a href="cl-muproc.html" class="internal">cl-muproc</a> -
|
|
<a href="http://common-lisp.net/project/cl-muproc/">CL-MUPROC</a> is an Erlang-inspired <a href="concurrency.html" class="category">concurrency</a> library available under the BSD license for <a href="Lispworks.html" class="internal">Lispworks</a>, <a href="OpenMCL.html" class="internal">OpenMCL</a>, <a href="SBCL.html" class="internal">SBCL</a>, <a href="CMUCL.html" class="internal">CMUCL</a>, and <a href="ACL.html" class="internal">ACL</a>
|
|
</li>
|
|
<li>
|
|
<a href="CLiMP.html" class="internal">CLiMP</a> -
|
|
CLiMP is a library for parallel programming in Common Lisp (implementing similar features like <a href="https://www.openmp.org/">OpenMP</a>)
|
|
</li>
|
|
<li>
|
|
<a href="green-threads.html" class="internal">green-threads</a> -
|
|
GREEN-THREADS is a portable library implementing green threads (lightweight, cooperatively multitasked, user threads) in Common Lisp
|
|
</li>
|
|
<li>
|
|
<a href="lisp-network-server.html" class="internal">lisp-network-server</a> -
|
|
<a href="http://www.thangorodrim.de/software/lisp-network-server/index.html">lisp-network-server</a> is a simple framework for writing Common Lisp <a href="networking.html" class="category">networking</a> applications
|
|
</li>
|
|
<li>
|
|
<a href="memento-mori.html" class="internal">memento-mori</a> -
|
|
<a href="https://github.com/zkat/memento-mori">memento-mori</a> is a library for writing robust, actor-based systems
|
|
</li>
|
|
<li>
|
|
<a href="Moira.html" class="internal">Moira</a> -
|
|
Moira is a simple (but not quite <a href="trivial.html" class="internal">trivial</a>) library for <a href="monitoring.html" class="category">monitoring</a> and, if necessary, restarting long-running <a href="thread.html" class="category">thread</a>s
|
|
</li>
|
|
<li>
|
|
<a href="patron.html" class="internal">patron</a> -
|
|
<a href="https://web.itu.edu.tr/~yazicivo/files/patron.README.txt">Patron</a> is a multi-consumer/multi-producer <a href="thread.html" class="category">thread</a> pooling library written
|
|
</li>
|
|
<li>
|
|
<a href="Portable-Threads.html" class="internal">Portable-Threads</a> -
|
|
Portable-threads is the <a href="GBBopen.html" class="internal">GBBopen</a> project's portable-<a href="thread.html" class="category">thread</a> code all packaged up for <a href="ASDF-Install.html" class="internal">ASDF-Install</a>
|
|
</li>
|
|
<li>
|
|
<a href="pretend-event-loop.html" class="internal">pretend-event-loop</a> -
|
|
This is a common lisp library that simulates an event loop
|
|
</li>
|
|
<li>
|
|
<a href="Q-THREAD-POOL.html" class="internal">Q-THREAD-POOL</a> -
|
|
<a href="https://mr.gy/software/q-thread-pool/api.html">Q-THREAD-POOL</a> is a very simple <a href="thread.html" class="category">thread</a> pool implementation based on <a href="JPL-QUEUES.html" class="category">JPL-QUEUES</a>
|
|
</li>
|
|
<li>
|
|
<a href="queues.html" class="internal">queues</a> -
|
|
A Common Lisp queue library with features such as non-consing <a href="thread.html" class="category">thread</a> safe queues and fibonacci priority queues
|
|
</li>
|
|
<li>
|
|
<a href="quux-hunchentoot.html" class="internal">quux-hunchentoot</a> -
|
|
<a href="https://gitlab.common-lisp.net/qitab/quux-hunchentoot">quux-hunchentoot</a> is an extension to the <a href="hunchentoot.html" class="category">hunchentoot</a> webserver that provides a <a href="thread.html" class="category">thread</a>-pooling taskmaster
|
|
</li>
|
|
<li>
|
|
<a href="safe-queue.html" class="internal">safe-queue</a> -
|
|
<a href="Thread.html" class="category">Thread</a>-safe queues and mailboxes
|
|
</li>
|
|
<li>
|
|
<a href="sb-cpu-affinity.html" class="internal">sb-cpu-affinity</a> -
|
|
sb-cpu-affinity lets you set Linux scheduler CPU affinity masks from SBCL
|
|
</li>
|
|
<li>
|
|
<a href="thread-pool.html" class="internal">thread-pool</a> -
|
|
thread-pool is library that allows asynchronous function execution from a static thread pool
|
|
</li>
|
|
<li>
|
|
<a href="threading-queue.html" class="internal">threading-queue</a> -
|
|
threading-queue is a CL macro to distribute work on several threads, feeding the data via thread-safe-queues over several steps
|
|
</li>
|
|
<li>
|
|
<a href="trivial-main-thread.html" class="internal">trivial-main-thread</a> -
|
|
Sometimes it is absolutely necessary to run certain tasks in the main <a href="thread.html" class="category">thread</a> of the implementation
|
|
</li>
|
|
<li>
|
|
<a href="trivial-monitored-thread.html" class="internal">trivial-monitored-thread</a> -
|
|
<a href="https://gitlab.com/ediethelm/trivial-monitored-thread">Trivial Monitored Thread</a> offers a very simple (aka <a href="trivial.html" class="category">trivial</a>) way of spawning <a href="thread.html" class="category">thread</a>s and being informed when one any of them crash and die
|
|
</li>
|
|
<li>
|
|
<a href="TutorialDebuggingDeadLock.html" class="internal">TutorialDebuggingDeadLock</a> -
|
|
Debugging a dead-lock in a program using bordeaux-threads in ccl
|
|
</li>
|
|
</ul></div></div>
|
|
<div id="footer" class="buttonbar"><ul><li><a href="concurrency.html">Current version</a></li>
|
|
<li><a href="https://www.cliki.net/site/history?article=concurrency">History</a></li>
|
|
<li><a href="https://www.cliki.net/site/backlinks?article=concurrency">Backlinks</a></li><li><a href="https://www.cliki.net/site/edit-article?title=concurrency&from-revision=3745693917">Edit</a></li><li><a href="https://www.cliki.net/site/edit-article?create=t">Create</a></li></ul></div>
|
|
</div>
|
|
<div id="header-buttons" class="buttonbar">
|
|
<ul>
|
|
<li><a href="https://www.cliki.net/">Home</a></li>
|
|
<li><a href="https://www.cliki.net/site/recent-changes">Recent Changes</a></li>
|
|
<li><a href="CLiki.html">About</a></li>
|
|
<li><a href="Text Formatting.html">Text Formatting</a></li>
|
|
<li><a href="https://www.cliki.net/site/tools">Tools</a></li>
|
|
</ul>
|
|
<div id="search">
|
|
<form action="https://www.cliki.net/site/search">
|
|
<label for="search_query" class="hidden">Search CLiki</label>
|
|
<input type="text" name="query" id="search_query" value="" />
|
|
<input type="submit" value="search" />
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div id="pageheader">
|
|
<div id="header">
|
|
<span id="logo">CLiki</span>
|
|
<span id="slogan">the common lisp wiki</span>
|
|
<div id="login"><form method="post" action="https://www.cliki.net/site/login">
|
|
<label for="login_name" class="hidden">Account name</label>
|
|
<input type="text" name="name" id="login_name" class="login_input" />
|
|
<label for= "login_password" class="hidden">Password</label>
|
|
<input type="password" name="password" id="login_password" class="login_input" />
|
|
<input type="submit" name="login" value="login" id="login_submit" /><br />
|
|
<div id="register"><a href="https://www.cliki.net/site/register">register</a></div>
|
|
<input type="submit" name="reset-pw" value="reset password" id="reset_pw" />
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body></html> |