超時跳過 接收子執行緒結果

2022-09-18 00:42:12 字數 1071 閱讀 2699

方式一:eventlet 模組 缺點:針對子程序無法跳出

import time, eventlet

eventlet.monkey_patch()

with eventlet.timeout(3, false):

time.sleep(4) # 可能超時的**塊

print('沒有跳過')

方式二:
def demo():

time.sleep(3) # 可能超時的**塊

return time.time()

class mythread(threading.thread):

def __init__(self, func, args=()):

super(mythread, self).__init__()

self.func = func

self.args = args

def run(self):

self.result = self.func(*self.args)

def get_result(self):

try:

return self.result

except exception:

return none

t = mythread(demo, ())

t.setdaemon(true)

t.start()

t.join(timeout=5)

x = t.get_result()

print(x)

與機器互動,獲取結果
while true:

for i in range(3):

try:

time.sleep(3) # 接收資料

break_flag = false

break

except:

break_flag = true

print('接收阻塞,可能已經完成')

if break_flag: # 判定結果接收完畢,退出迴圈

break

獲取子執行緒的執行結果

public class thread implements runnable private static class task implements callable public static void main string args throws executionexception,in...

Future獲取子執行緒的執行結果

runnable的缺陷 functionalinte ce public inte ce runnable callable介面類似於runnable,被其他執行緒執行的任務 實現call方法,有返回值 functionalinte ce public inte ce callable callab...

如何獲取子執行緒的執行結果

對於執行緒的管理,我們不僅可以通過執行緒池進行管理,我們還可以通過future和callable進行管理。runnable介面無法返回乙個值返回。runnable介面原始碼 functionalinte ce public inte ce runnable runnable介面不能丟擲checked...