利用wait的阻塞機制, 就能夠實現暫停和恢復了, 再配合迴圈判斷標識位, 就能實現退出了
#!/usr/bin/env python# coding: utf-8
import threading
import time
class job(threading.thread):
def __init__(self, *args, **kwargs):
super(job, self).__init__(*args, **kwargs)
self.__flag = threading.event() # 用於暫停執行緒的標識
self.__flag.set() # 設定為true
self.__running = threading.event() # 用於停止執行緒的標識
self.__running.set() # 將running設定為true
def run(self):
while self.__running.isset():
self.__flag.wait() # 為true時立即返回, 為false時阻塞直到內部的標識位為true後返回
print time.time()
time.sleep(1)
def pause(self):
self.__flag.clear() # 設定為false, 讓執行緒阻塞
def resume(self):
self.__flag.set() # 設定為true, 讓執行緒停止阻塞
def stop(self):
self.__flag.set() # 將執行緒從暫停狀態恢復, 如何已經暫停的話
self.__running.clear() # 設定為false
測試**
a = job()a.start()
time.sleep(3)
a.pause()
time.sleep(3)
a.resume()
time.sleep(3)
a.pause()
time.sleep(2)
a.stop()
linux多執行緒控制
include include include include include define size 1024 函式作用 使用訊號量控制,讀取輸入,獲得長度 void thread function void argv char buf size sem t sem int main res pt...
Qt學習(二) 多執行緒控制
執行緒之間存在著相互制約的關係,具體可分為互斥和同步這兩種關係。在程式中,通常都會用到叫做 臨界資源 的東西,可能是一塊記憶體,乙個資料結構,乙個檔案等具有排他性使用的東西。這些東西,在多執行緒環境下,必須進行互斥處理,才能安全地使用臨界資源。所以,對臨界資源執行互斥操作的 片段,叫做臨界區。互斥量...
C 多執行緒控制控制項例項
該例項功能為 多執行緒控制ui控制項 執行緒函式實現自動加1。介面如下 委託處理方法 關聯與listboxdelegate private void listbox else 如果是在另一線程操作listbox,則啟用委託 listbox1.invoke new listboxdelegate li...