スレッディングの仕組みを頭に入れようとしています。スレッドの周りを頭で包みようとしています
オリジナル理解:私は、スレッドが単一のクラスとそのサブクラスに限られていたと思っ前
、何のクラスは、スレッド間で共有することはできない、とスレッド間の通信は、それが本当のハード私が理解するために作られました。
新しい理解:
しかし、スレッドがちょうど同じコード内のランダムな時点で実行されているように多くの私はそれについて読んで、それは代わりに思えます。特定の領域に制限することはできますが、理論的には同じコードがスレッドごとに複数回実行される可能性があります。
別の言い方をすれば、コードがターンと接続を持つ道路システムであると見なすと、プログラムが実行できるフローであり、メインスレッドはこれを実行します。新しいスレッドが生成された場合は、どこから始めるべきか、そこからコードが移動し、同じクラスとコマンドを使用できるので、コードが「悪い」場合は、2つのコード "コードとの読み書き、同じプログラムのすべての部分、「道路」上の複数の「車」だけに制限はありません。
特定の領域(ループ/コードの一部)にとどまり、特定の場所でのみ対話するスレッドを制限することもできますが、無視して「クラッシュ」を避けることもできます。
「新しい理解」スレッドを使用すると、私の頭を包み込むのがずっと簡単になるので、正しいことは分かりますか?
はい、後ほどの理解は多かれ少なかれ正しいです!あなたの類推を拡張するために、スレッド同期関数とオブジェクト(例えば、 'ManualResetEvent'と' lock')は、車が衝突するのを防ぐ信号灯のようなものです。 :) –
ここにスレッドに関する優れた無料の電子ブックがあります:['Albahari'](http://www.albahari.com/threading/) –
お互いからの入力をありがとう。突然、私の頭の中で働き、周りを包み込むことがはっきりと分かります。非常に単純です...だから間違っているともっと危険です:) – Taoh