シンクロ

Last-modified: 2023-07-22 (土) 15:15:43
ブロックシンクロ
グループながれ
このブロックを
使えるレベル
999
パターンくりかえし(?)
バージョン不明

 シンクロ  とは、制御ブロックの一つであり、
排他制御 ( プログラムの実行が被らないようにする工夫 ) を行うブロックである。

ブロックパレットには  ながれ  カテゴリの下の方にある。
また、使用するにはレベルを 999 に設定する必要がある。

 

特徴

シンクロで囲んだブロック同士を同時に起動すると、先に起動したどちらか片方しか実行されなくなる。
もう片方のブロックは、実行されたブロックの終了を待ってから実行される。
簡単に言うと、「 プログラムに順番待ちをさせる 」 ブロックである。

電車の駅にある改札口一つには、基本一人ずつしか通れない。
そのため、先に改札口を通ろうとしている人がいたら、自分は順番待ちをする必要がある*1

シンクロブロックは、まさに改札口のような役割を持っている。
切符を入れる所に たくさんの人が同時に押し寄せると 大変なことになるように、
プロゼミの変数が同時に更新されるとバグったりすることがある。
ブロックが実行できる窓口を 1 つに限ることで、プログラムの実行の競合 ( 被る ) を防ぐことができる。
このように、シンクロブロックは、同時に実行されるとヤバいプログラムに組み込んで使うことができる。

▼真似して作ってみてね
・シンクロなし

image322.png

・シンクロあり

image323.png
 

筆者

ティラミス

 

タグ

Tag: ブロック

 

関連ページ

 

コメント

  • シンクロの意味わからんかったけどようやく理解できた() -- たけのこの切り株 2023-07-22 (土) 07:40:02
  • Java とかだと遅延処理とか呼んだりするね。 -- ポッドさん 2023-07-22 (土) 15:15:43
 

*1 「 隣の改札使えや 」 「 改札通るのにそんな時間かからんやろ 」 そんな愚見は考えないものとする