K60至尊版剛預熱 一加Ace2 Pro正面硬剛
Redmi這邊剛如火如荼的宣傳了K60 Ultra的各種技術和硬件配置,作為競品的一加也坐不住了。一加中國區總裁李杰發布了兩條微博,表示在自家的一加Ace2上早就已經采用了和PixelWo
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)# 創建兩個線程實例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# 創建鎖counter_lock = threading.Lock()# 定義一個簡單的線程類class MyThread(threading.Thread): def run(self): global counter for _ in range(5): with counter_lock: # 使用鎖保護臨界區 counter += 1 print(threading.current_thread().name, "Counter:", counter)# 創建兩個線程實例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# 定義一個簡單的任務函數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# 創建條件變量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() # 通知寫線程# 創建寫線程和讀線程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多線程編程全解析:基礎到高級用法
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com