記事には「世界は閘門を必要としない」とは決して書かれていません。記事には、「Erlangでは、共有状態がないため、Erlangプログラムにロックは必要ありません」と書かれています。ロックは、可変状態を共有することで同時実行性を実現する1つの方法です。Erlangは、状態を共有する代わりにメッセージを渡すことで同時実行性を実現します。
ガススタンドはガスを手に入れる場所です。一度に1人だけがそれを使用していることを確認する方法は別の問題です。共有状態の言語では、使用するときにロックするガススタンドインスタンスが1つある場合があります。メッセージパッシング言語では、ガススタンドプロセスに「誰かがあなたを使用していますか?」というメッセージを送信できます。ガススタンドは「はい」または「いいえ」と応答します。どちらの方法でも同じ基本的な目標を達成できます。
「それは私には鍵のように聞こえます!」と疑問に思われるかもしれません。重要な違いは、Erlangの状態の各部分を担当するプロセスは1つだけですが、可変のロックされたデータを使用して、任意の数のスレッドが状態の一部に影響を与える可能性があることです。ガススタンドの状態がロックセマンティクスで破損した場合、どのスレッドがそれを壊したのかわかりません。Erlangでは、そのデータを担当するプロセスに入ってくるすべてのメッセージを確認し、どのメッセージがデータに損害を与えているかを確認できます。役に立たない区別のように聞こえるかもしれませんが、私を信じてください。並行性の処理がはるかに簡単になります。