Pythonタイマースレッドプールの原理の詳細な説明

この記事では、主にPythonタイマースレッドプールの原理の詳細な説明を紹介します。サンプルコードを詳細に紹介します。これは、すべての人の研究や仕事のための特定の参照学習値を持っています。それを必要とする友人は参照できます。

タイマーは周期的なタスクを実行します。

ナレッジリザーブ

Timer(interval, function, args=None, kwargs=None)

間隔===》時間間隔の単位はsです

関数===》カスタマイズされた実行関数

スレッドを使用したタイマークラス

start()は、実行を開始するための一般的なメソッドです

cancel()は実行をキャンセルするメソッドです

通常のシングルタイミング実行

from threading import Timer
import time
# 通常のワンショットタイマー
def handle():print("通常のワンショットタイマー機能を実行します");
t1=Timer(interval=1,function=handle);
t1.start();

時限ループ実行

from threading import Timer
import time
# サイクルタイマー
def loop_handle():print("ループタイマータイマー機能を実行します");
global t2;
t2=Timer(interval=1,function=loop_handle);
t2.start();
 
t2=Timer(interval=1,function=loop_handle);
t2.start();
 
time.sleep(5);#メインスレッドを5秒間停止します。
t2.cancel(); #t2はメインスレッドを5秒間ブロックし、t2は5秒間実行します

スレッドプールテクノロジー

基本コンセプト

プログラムが起動すると、いくつかのスレッドが作成され、メモリに保存されます。スレッドが開始されて実行されると、スレッドは破棄されませんが、次の使用を待ちます。
i:プロセスの作成と破棄の時間を節約し、プロセスのオーバーヘッドを大幅に削減します

成し遂げる

プリエンプティブ:スレッドプール内のスレッドの実行順序は固定されていません。このメソッドは、ThreadPoolExecutorのsubmit()メソッドを使用して実装されます。

スレッドの特定の実行はランダムであり、実行される関数も一貫性がない可能性があります

そのスレッドによって実行された関数がクラッシュし、スレッドプール全体の他のスレッドの動作に影響を与えません

操作を簡素化するために構文とともに使用する

非プリエンプティブ:スレッドは、呼び出された順序で実行されます。このメソッドは、ThreadPoolExecutorのmap()メソッドを使用して

各スレッドで処理される関数は同じですスレッドで実行される関数がクラッシュし、プロセス全体がクラッシュします

基本コード

from concurrent.futures import ThreadPoolExecutor #スレッドプールをインポートする
import time
def printName(name):print("ファーストネーム",name);
time.sleep(2);
nameList=['Tom','jirl','steam'];
# プリエンプティブルスレッドプール
start2=time.time();withThreadPoolExecutor(3)as executor:for i in nameList:#毎回実行される関数に一貫性がないため、パラメーターを個別に渡す必要があります
executor.submit(printName,i); 
end2=time.time();print("2 speed:",str(end2-start2));
# プリエンプティブでないスレッドプール

以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。

Recommended Posts

Pythonタイマースレッドプールの原理の詳細な説明
Python super()メソッドの原理の詳細な説明
Pythondecimalモジュールの使用法の詳細な説明
Pythonインターフェース開発の実装手順の詳細な説明
Pythonオブジェクトの属性アクセスプロセスの詳細な説明
pythonに基づく残りの問題の詳細な説明(%)
pythonバックトラッキングテンプレートの詳細な説明
pythonシーケンスタイプの詳細な説明
PythonIOポート多重化の詳細な説明
pythonコマンドの-uパラメーターの詳細な説明
Python推測アルゴリズムの問題の詳細な説明
Pythonでのpipの使用に関する詳細な説明|サードパーティライブラリのインストールの概要
python標準ライブラリOSモジュールの詳細な説明
pythonがコンカレントメソッドをサポートする方法の詳細な説明
Pythonに基づくデータタイプの詳細な説明
Pythonプロセス制御の一般的なツールの詳細な説明
PythonWebページパーサーの使用例の詳細な説明
Pythonの基盤を統合する(4)
Python(7)の基盤を統合する
Python(6)の基盤を統合する
Python(5)の基盤を統合する
Pythonの基盤を統合する(3)
Pythonプラグインメカニズムの詳細な実装
gpg2を使用したubuntuの詳細な説明
Pythonは中国語の4つの車輪を処理します
Pythonエラー処理は詳細な説明を主張します
地主取引のPythonシミュレーション
Pythonの用途は何ですか
Ubuntu環境でのSSHのインストールと使用の詳細な説明
Pythonでの辞書の詳細な使用法
Python文字列プーリングの前提
Python3.8の新機能の秘密
Pythonがタイマー機能を実装する方法
Pythonの父がMicrosoftに加わる
python accesshdfsの操作
pythonでのタプルの使用法
pythonを実行するメソッドを終了します
pythonでのrbの意味を理解する
Pythonはスタックの構造を実装できますか?
pythonインタラクティブモードの基本を学ぶ
pythonの必須パラメーターは何ですか
pythonの下部にあるロジスティック回帰
Python3クローラーでのAjaxの使用
PythonはTowerofHanoiゲームを解決します
pythonの複数のバージョンの競合を解決します
python変数の範囲は何ですか
Pythonは分数シーケンスの合計を実装します
Pythonガベージコレクションメカニズムの詳細な分析
Pythonの基礎を学ぶ2日間
pythonのid関数は何ですか
Pythonクラスの動的バインディングの実装原則
属性からプロパティまでのPython詳細な説明
python3のピップパスはどこにありますか
Python言語の本質:Itertoolsライブラリ
python言語の利点は何ですか
pythonインスタンス化オブジェクトの特定のメソッド
python3はマスク描画の機能を実現します
python開発の見通しは何ですか
Python仮想環境venvの使用法の詳細な説明
pythonの関数本体は何ですか
pythonインポートライブラリの特定の方法