亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

スレッドとプロセス

スレッドとプロセスはオペレーティング システムの用語であり、簡単に言えば、各アプリケーションには獨(dú)自のプロセスがあります。

オペレーティング システムは、メモリ空間などの実行リソースをこれらのプロセスに割り當(dāng)てます。このプロセスでは、いくつかのスレッドが作成され、これらのメモリ空間を共有し、並列計(jì)算のためにオペレーティング システムによって呼び出されます。

Mac OS X、UNIX、Linux、Windows などの最新のオペレーティング システムでは、複數(shù)のタスクを同時(shí)に実行できることは誰もが知っています。たとえば、ブラウザを使用してインターネットをサーフィンし、コードを入力し、Markdown でブログを書いているとします。これはマルチタスクであり、少なくとも 3 つのタスクが同時(shí)に実行されます。もちろん、バックグラウンドで同時(shí)に多くのタスクが靜かに実行されていますが、それらはデスクトップには表示されません。オペレーティング システムの場合、タスクはプロセスです。たとえば、ブラウザを開くことはブラウザ プロセスの開始を意味し、PyCharm を開くことは PtCharm プロセスの開始を意味し、Markdown を開くことは Md プロセスの開始を意味します。

マルチコア CPU は現(xiàn)在非常に人気がありますが。ただし、CPU の実行コードは順次実行されるため、この時(shí)點(diǎn)で、シングルコア CPU が複數(shù)のタスクをどのように実行するのかという疑問が生じます。

実際には、オペレーティング システムは各タスクを交互に実行します。タスク 1 は 0.01 秒間実行され、タスク 2 に切り替わり、タスク 2 は 0.01 秒間実行され、その後タスク 3 に切り替わり、0.01 秒間実行されます。 0.01 秒...など続きます。表面的には各タスクが交互に実行されていますが、CPU の実行速度が非常に速いため、肉眼では認(rèn)識(shí)できず、すべてのタスクが同時(shí)に実行されているように感じられます。

マルチタスクの真の並列実行は、マルチコア CPU でのみ実現(xiàn)できます。ただし、タスクの數(shù)は CPU コアの數(shù)をはるかに超えるため、オペレーティング システムは多くのタスクを順番に自動(dòng)的にスケジュールします。 . 各コアで実行します。

一部のプロセスは、ブラウザなど 1 つのことだけを目的としたものではありません。ビデオの再生、音聲の再生、記事の読み取り、記事の編集などを行うことができます。実際、これらはすべてブラウザのプロセス內(nèi)にあります。で 。プロセス內(nèi)で複數(shù)のことを同時(shí)に実行したい場合は、複數(shù)の「サブタスク」を同時(shí)に実行する必要があります。プロセス スレッド內(nèi)でこれらを「サブタスク」と呼びます。

各プロセスは少なくとも 1 つのことを?qū)g行する必要があるため、プロセスには少なくとも 1 つのスレッドがあります。もちろん、プロセスには複數(shù)のスレッドを含めることもでき、複數(shù)のスレッドを同時(shí)に実行することもできます。マルチスレッドの実行方法は複數(shù)のプロセスの実行方法と同じです。オペレーティング システムも複數(shù)のスレッドを素早く切り替え、それぞれのスレッドを許可します。一時(shí)的に実行するスレッドを交互に実行すると、同時(shí)に実行されたように見えます。

では、Python で複數(shù)のタスクを同時(shí)に実行したい場合はどうすればよいでしょうか?

解決策は 2 つあります:

1 つは、複數(shù)のプロセスを開始することです。各プロセスにはスレッドが 1 つしかありませんが、複數(shù)のプロセスは複數(shù)のタスクを一緒に実行できます。

もう 1 つの方法は、プロセスを開始し、1 つのプロセス內(nèi)で複數(shù)のスレッドを開始して、複數(shù)のスレッドが複數(shù)のタスクを一緒に実行できるようにすることです。

もちろん、3 番目の方法もあります。これは、複數(shù)のプロセスを開始し、各プロセスが複數(shù)のスレッドを開始して、より多くのタスクを同時(shí)に実行できるようにします。もちろん、このモデルはより複雑で、次のような環(huán)境ではほとんど使用されません。練習(xí)する。

要約すると、マルチタスクを?qū)g裝するには 3 つの方法があります:

マルチプロセス モード、

マルチスレッド モード、

マルチプロセス マルチスレッド モード。

複數(shù)のタスクを同時(shí)に実行します。通常、タスクは無関係ではありませんが、相互に通信して調(diào)整する必要があります。場合によっては、タスク 1 を一時(shí)停止して、タスク 2 が完了するまで待機(jī)しないと続行できません。タスク 3 とタスク 4 は同時(shí)に実行できない場合があるため、マルチプロセスおよびマルチスレッド プログラムの複雑さは、前に作成した単一プロセスおよび単一スレッドのプログラムよりもはるかに高くなります。

非常に複雑でデバッグが難しいため、必要がない限りマルチタスクを書きたくありません。ただし、マルチタスクなしでは実行できない場合も多くあります。コンピュータで映畫を見ることを考えてください。1 つのスレッドでビデオを再生し、別のスレッドでオーディオを再生する必要があります。それ以外の場合、単一のスレッドで実裝されている場合は、ビデオを最初に再生してからオーディオを再生するか、オーディオを最初に再生してからオーディオを再生する必要があります。次にビデオですが、これは明らかに不可能です。

學(xué)び続ける