2017-11-01 4 views
-1

私はマルチスレッドを勉強していますが、今は止まっています。私はそれを読むJavaのマルチスレッドは、同時に複数のスレッドを実行するプロセスです。これは何ですか?は「同時に」を意味しますか?また、マルチスレッドは時分割の概念に基づいているため、スレッドはどのように同時に実行できますか?スレッドが同時に実行できない場合は、shiftキーを押しながらマウスをドラッグすることで、どのように直線でペイントすることができますか?スレッドは、擬似同時に実行されるようにマルチスレッディングの例をSHIFTとマウスでドラッグしてペイントの直線を描いていますか?

+1

ようこそ助けを願っての新しい缶を開きますので、またIOは、OSのサポートが必要です! [ツアー]を見て回り、[ヘルプ]、特に[*どのように良い質問をしますか?*](/助け/やり方)、[* *](/ help/dont-ask)、[*ここではどのような話題を聞くことができますか?*(/ help/on-topic)これはあまりにも広すぎるためです。スレッドと並行プログラミングチュートリアルと書籍をいくつか見つけてください。 (タイトルでの質問への答えは次のとおりです。いいえ。それは、キーの状態を覚えているスレッドを取ることはありません) –

答えて

2

概要:

実際、ほとんどのスレッドは同時に実行されません。トリックは、スレッドが頻繁にお互いに切り替わることです。これは並列性の錯覚を与える。 (急速に変化し、立て続けに画像が連続運動の錯覚を与える方法と同様のスレッドが同時に実行されているような錯覚を与える)塗料が実装されてどのように

は誰の推測です。ラインを引き起こし、あなたがあなたのマウスを移動するブールフラグが

を上げます、シフトを押し

あなたはブールフラグを切り替えてシフトキーを上げる場合は、ラインが

が計算されていない。私のここに行きますストレートもはや

Ideedであることを、キーリスニングは、多くの場合、マルチスレッド化されるアクションです。スレッドが押された場合、数ミリ秒ごとにすべてのキーを尋ねるスレッドがあります。そうであれば、他のトレッドにメッセージを送ります(その特定のキーを聞いている場合)。マウスの動きを読み取る場合も同じです。

通常、あなたはそれがあなたのために最もlibrarys /フレームワークによって処理されるように、IOのために非常に詳細に行く必要はありません。それはワーム

私はこれがスタックオーバーフローに

0

プロセッサは、一度に複数のスレッドを実行することができません。この写真でenter image description here

各色は、それぞれのスレッドを意味します。プロセッサは1つのスレッドを実行し、次に2番目のスレッドなどを実行します。それらは同時に実行されているようですが、プロセッサは現在のスレッドを変更してこれを実行します。

+0

のスレッドが同時に実行できない場合は、その後、私たちはどのようにすることにより、塗料に直線を引くことができますShiftキーを押しながらマウスをドラッグします。 –

関連する問題