「デッドロック」という言葉をご存知でしょうか。

プログラマーの方や、コンピュータ関係の方であればご存知だと思いますが、2つのプログラム(プロセス)が、相手のプログラムの処理が先に進まないと、自分のプログラムの処理が進められない状態となり、どちらも先に進めなくなる状態のことを現したものです。

比較的初歩的なプログラミングミス(バグ)によって発生する場合もありますし、意図的に発生させようとすれば、簡単に発生させることもできます。

私は、車の運転をしている時にも、「あ。これデッドロックすんじゃね?」と思うことがあります。

主に、自分の車線と、対向車線ともに混雑しているような場合です。

下のイラストが、私が意味するデッドロックの例です。

 



A車が交差点を右折しようとするものの、対向車線のE車が交差点に侵入して来てしまっており、行く手を塞がれているため、右折することができません。

一方、対向車線では、I車が路地に右折したいのですが、対向車線のD車が路地を塞いでいて、右折できません。

それぞれの車線に右折待ちの車があることで、渋滞となってしまい、その渋滞がそれぞれの右折を妨げている、という最悪のケースです。

皆さんなら、こんな時、この状況を俯瞰で見て、どの車をどう動かすでしょうか。

私がI車の立場で、初心者マークを付けて運転している頃であれば、とてもいたたまれなくなって、右折を諦めて直進してしまうでしょう。どうしても、そこの路地を右折しなければ死ぬ、という訳でもありませんし。

それではI車にちょっと気の毒だという方は、C車にもう少し前に詰めてもらう、でしょうか。

ただ、C車は前のB車が大きいトラックなので、あまりすぐ後ろまで近づきたくは無いのです(この理由は、また別のブログでご説明します)。

そして、C車は自分の後ろでI車が右折したがっていることにも気付いていません。

この位すぐ後ろであれば、気付いても無理は無いのですが、もう1,2台、車の列が長い場合は、気付かない人の方が多いと思います。

 

自分の後ろ、まして対向車線で起こっていることに気を配りながら運転している人なんて、まずいませんから。

B車にA車の脇をすり抜けてもらいましょうか。

普通の乗用車であれば楽に行けそうなのですが、B車はトラックなので、下手にくねくねと蛇行したくはありません。慎重なドライバーなのです。

E車が交差点に突っ込んで来るのが悪いんだよ。という意見も多いでしょう。

ただ、これも、その前の状況によっては、無理も無かったのかも知れません。

自分でも似たようなことをやってしまうケースもあるでしょう。

D車がこんなことを予期して、路地の前を空けておくような配慮が出来れば、スムースに両方が進めたとも考えられます。

ただ、D車が悪い、という訳でもありません。

どの車も、それぞれの立場と判断で運転をしているだけです。

でも、それぞれがもう少しづつ、自分のことだけでなく、周りの交通全般のことを考えながら運転していれば、デッドロックを避けることが出来たように思います。

私は、このようにデッドロックが発生しそうな場合は、前の車との車間を少し空けて走るようにしています。

自分がその車間を空けていることで、別の車を通せるかも知れませんし、逆にその車間を詰めることで自分の後ろにスペースが出来て、そこを活用できるかも知れません。

後者の場合、後続の車が自分について来て車間を詰められてしまったらアウトですので、後ろの車が状況を認識出来る時間を設けてから、動くようにすることも大切です。

私がD車の立場だったら、このような渋滞時や信号待ちのケースでは、路地の出入口は空けておくような位置取りをします。

路地から出てこようとする車があるかも知れませんし、路地に入って行こうとする車があるかもしれません。

対向の車線が混雑していない場合でも、それに変わりはありません。

そして、路地であれば比較的そういう考えに至りやすいと思いますが、車の出入りが発生し得るのは、路地には限りません。

スーパー、ファミリーレストラン、パチンコ店などの駐車場の出入口も同様です。

勿論、普通の月極の駐車場でも、個人の家の駐車場でも、その時に出入りが発生する可能性は低いものの、ゼロとは限りません。まあ、いちいち個人宅の駐車エリアまで気にしていたら、キリがありませんが。

いろいろな可能性を考えながら運転をすること、そして車の動きを止める時は、どこで止まるのが最適なのかを考えて止まること、そんな意識をしながら運転をしている、ということです。

いかがでしょうか?参考になりますでしょうか?

そんなの当たり前じゃん。いつもやってるよ。という人が大半であることを願います。

 

おしまい

 

https://twitter.com/user_sup/