Pythonは2つのスレッドの代替実行を実装します

私はナンセンスな話はしません、ただコードを見てください!

import threading
import time

def a():while True:
 lockb.acquire()print('a')
 locka.release()
 time.sleep(0.5)

def b():while True:
 locka.acquire()print('b')
 lockb.release()
 time.sleep(0.5)if __name__ =="__main__":
 locka = threading.Lock()
 lockb = threading.Lock()

 ta = threading.Thread(None, a)
 tb = threading.Thread(None, b)

 locka.acquire()   #aが最初に実行されることを確認します

 ta.start()
 tb.start()

実行後に相手のロックを取得し、自分のロックを解除します

補足知識:スレッドの同期-2つのスレッドが交代でpython実装を実行します

コードを見てください!

import threading
import time
lockA=threading.Lock()
lockB=threading.Lock()
def printA(n):if n<0:return
 lockA.acquire()print("+++")
 lockB.release()
 time.sleep(0.1)printA(n-1)
def printB(n):if n<0:return
 lockB.acquire()print("***")
 lockA.release()
 time.sleep(0.2)printB(n-1) 
 
lockB.acquire()
t1=threading.Thread(target=printA,args=(10,))
t2=threading.Thread(target=printB,args=(10,))
t1.start()
t2.start()
t1.join()
t2.join()

インターンシップを探しているので、オペレーティングシステムをもう一度覚えておく必要があります。

アイデア:2つのロックlockAとlockBを作成します。実行するたびに、自分のロックをロックし、相手のロックを解除します。

最初に、Aが最初に実行されると、Aのロックが解放され、Bのロックがロックされます。

上記の2つのスレッドの交互実行のpython実装は、エディターによって共有されるすべてのコンテンツです。参照を提供したいと思います。

Recommended Posts

Pythonは2つのスレッドの代替実行を実装します
Pythonは写真の水平ステッチを実装しています
Pythonは分数シーケンスの合計を実装します
Pythonの基礎を学ぶ2日間
pythonでのシェル実行の知識ポイント
Python3.9の7つの機能
PythonはDoudizhuでカードのシャッフルを実装します
Pythonはスネークゲームのソースコードを実装しています
[898] pythonは2つのリストの共通部分を取得します|ユニオン|違い
Pythonはスーパーマリオを実装しています
Pythonはtic-tac-toeゲームを実装しています
Pythonはtic-tac-toeゲームを実装しています
Pythonはマンマシンゴバンを実装します
PythonはTetrisゲームを実装しています
Pythonは画像スティッチングを実装しています
Python構文の基本
Pythonはminesweeperゲームを実装しています
Pythonはスキャンツールを実装しています
Pythonの基本構文
Pythonの基礎知識(1)
pythonのPrettytableモジュール
09.Python3の共通モジュール
Pythonはしきい値回帰を実装します
Pythonは地雷除去ゲームを実装しています
Pythonは電子辞書を実装しています
Pythonは推測ゲームを実装しています