6月安卓手機性價比榜:Note 12 Turbo斷層式碾壓
6月份有一個618,雖然這是京東周年慶的日子,但別的電商也都不約而同的跟進了,反正促銷沒壞處,廠商和用戶都能滿意。618期間一些產品也出現(xiàn)了歷史低價,那么各個價位段的產品性價比
Python中有多線程的支持。Python的threading模塊提供了多線程編程的基本工具。在下面,我將列舉一些基礎的多線程用法和一些高級用法,并提供相應的源代碼,其中包含中文注釋。
import threadingimport time# 定義一個簡單的線程類class MyThread(threading.Thread): def run(self): for _ in range(5): print(threading.current_thread().name, "is running") time.sleep(1)# 創(chuàng)建兩個線程實例thread1 = MyThread(name="Thread-1")thread2 = MyThread(name="Thread-2")# 啟動線程thread1.start()thread2.start()# 主線程等待所有子線程結束thread1.join()thread2.join()print("Main thread exiting")
import threading# 共享資源counter = 0# 創(chuàng)建鎖counter_lock = threading.Lock()# 定義一個簡單的線程類class MyThread(threading.Thread): def run(self): global counter for _ in range(5): with counter_lock: # 使用鎖保護臨界區(qū) counter += 1 print(threading.current_thread().name, "Counter:", counter)# 創(chuàng)建兩個線程實例thread1 = MyThread(name="Thread-1")thread2 = MyThread(name="Thread-2")# 啟動線程thread1.start()thread2.start()# 主線程等待所有子線程結束thread1.join()thread2.join()print("Main thread exiting")
import concurrent.futuresimport time# 定義一個簡單的任務函數(shù)def task(name): print(f"{name} is running") time.sleep(2) return f"{name} is done"# 使用線程池with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor: # 提交任務給線程池 future_to_name = {executor.submit(task, f"Thread-{i}"): f"Thread-{i}" for i in range(5)} # 獲取任務結果 for future in concurrent.futures.as_completed(future_to_name): name = future_to_name[future] try: result = future.result() print(f"{name}: {result}") except Exception as e: print(f"{name}: {e}")
import threadingimport time# 共享資源shared_resource = None# 創(chuàng)建條件變量condition = threading.Condition()# 定義一個寫線程class WriterThread(threading.Thread): def run(self): global shared_resource for _ in range(5): with condition: shared_resource = "Write data" print("Writer wrote:", shared_resource) condition.notify() # 通知等待的線程 condition.wait() # 等待其他線程通知# 定義一個讀線程class ReaderThread(threading.Thread): def run(self): global shared_resource for _ in range(5): with condition: while shared_resource is None: condition.wait() # 等待寫線程通知 print("Reader read:", shared_resource) shared_resource = None condition.notify() # 通知寫線程# 創(chuàng)建寫線程和讀線程writer_thread = WriterThread()reader_thread = ReaderThread()# 啟動線程writer_thread.start()reader_thread.start()# 主線程等待所有子線程結束writer_thread.join()reader_thread.join()print("Main thread exiting")
這些例子涵蓋了一些基礎和高級的多線程用法。請注意,在Python中由于全局解釋器鎖(GIL)的存在,多線程并不能充分利用多核處理器。如果需要充分利用多核處理器,可以考慮使用multiprocessing模塊進行多進程編程。
本文鏈接:http://www.www897cc.com/showinfo-26-79601-0.htmlPython多線程編程全解析:基礎到高級用法
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com