質問: **クローズされました**。この質問にはより詳細な情報、もしくは明確さが必要です。この質問では現在、回答を受け付けていません。 --- **この質問を改善したいですか?** 投稿を編集から詳細を追加し解決しようとしている問題を明確にしてください。 4年前 にクローズされました。 この質問を改善する マルチスレッドとは、簡単に言えばプログラムを処理するものを増やすことです。しかし、そのマルチスレッドが危険と聞いたことがあります。 マルチスレッドが何故危険なのでしょうか。
回答: 危険というのは、正しく理解して使わないと、計算結果が間違ったり予期しないエラーが発生する事があるという事を注意喚起だと思います。 ここに数字を+1 する 関数 add() と 数字を -1 する sub() 関数があるとします。 順番に add() を 100回 実行し sub() を 100回 実行すると 元の数字に戻りますが マルチスレッドで add() 100回 と sub() 100回を マルチスレッドで並列して動作させると 違う値になる可能性があります。 ``` int i = 5; void add() { i = i + 1; } void sub() { i = i - 1; } ``` こんな なんでもない処理でも、マルチスレッドでは動作させることができないのです。 危険だと思いませんか? だからある程度プログラムがちゃんとできるようになるまでは、マルチスレッドは 避けておいた方が良いですよ・・と親切心から「危険」と言っているのだと思います。