python多執行緒控制

2022-08-30 15:48:17 字數 1149 閱讀 7838

利用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...