Clojure
それぞれに10個の値の入った長さ100の配列(vector)があり、10×100=1,000個の異なる連続した数が格納されている。これら100個のvectorを16個のスレッドで共有する。各スレッドは、ランダムに2つのvectorを選びそれぞれの配列でランダムな位置を決めて、二つの配列の要素の内容を交換する、という作業をClojure言語のソフトウェアトランザクショナルメモリを使って行う。この作業を300,000回繰り返しても、最初に格納されていた1,000個の数はどれひとつとして失われることがない。