Python 多執行緒簡單案例 執行緒同步

2022-09-14 12:12:11 字數 989 閱讀 3076

# -*- codeing: utf-8 —*—

import time

import threading

# 執行緒同步

class mythead(threading.thread):

def __init__(self, name, delay):

threading.thread.__init__(self)

self.name = name

self.delay = delay

def run(self):

print("開啟執行緒: " + self.name)

threadlock.acquire() # 獲取鎖,用於執行緒同步

print_time(self.name, self.delay, 3)

threadlock.release() # 釋放鎖,開啟下乙個執行緒

def print_time(thread_name, delay, counter):

while counter:

time.sleep(delay)

print("%s: %s" % (thread_name, time.strftime("%y-%m-%d %h:%m:%s")))

counter -= 1

pass

threadlock = threading.lock()

threads =

# 建立新執行緒

thread1 = mythead("thread-1", 1)

thread2 = mythead("thread-2", 2)

# 開啟新執行緒

thread1.start()

thread2.start()

# 新增執行緒到執行緒列表

# 等待所有執行緒完成

for t in threads:

t.join()

print("退出主線程.")

簡單多執行緒死鎖案例

在多執行緒程式中死鎖的乙個令人頭疼的問題,為了避免死鎖就要避免死鎖產生,就要知道死鎖產生的條件 死鎖產生的原因是同步巢狀,所以在開發過程中要盡量避免同步巢狀 下面是我的乙個簡單的同步死鎖案例 定義兩個鎖 class lock寫乙個執行緒 public class threaddemo4 extend...

多執行緒簡單案例 join( ) lock()

join 在呼叫結束前,主線程不會結束 不加的話,主線程會在子執行緒結束前繼續執行 並行 加了join 主線程會等待子執行緒結束後在繼續執行下去 序列 python3 main print number stop after son thread stop son thread print id i...

python中多執行緒的簡單案例

coding utf 8 import threading from time import ctime,sleep def music func for i in range 2 print i was listening to s.s func,ctime sleep 4 def move fu...