【发布时间】:2016-01-31 14:34:46
【问题描述】:
由于它的并发期货模块,我刚刚转向 python3。我想知道是否可以让它检测错误。我想使用并发期货来并行程序,如果有更高效的模块请告诉我。
我不喜欢多处理,因为它太复杂而且没有多少文档可用。但是,如果有人可以编写一个没有类的 Hello World,只使用多处理并行计算的函数,这样它就很容易理解了,那就太好了。
这是一个简单的脚本:
from concurrent.futures import ThreadPoolExecutor
def pri():
print("Hello World!!!")
def start():
try:
while True:
pri()
except KeyBoardInterrupt:
print("YOU PRESSED CTRL+C")
with ThreadPoolExecutor(max_workers=3) as exe:
exe.submit(start)
以上代码只是一个演示,说明 CTRL+C 如何无法打印语句。
我想要的是能够调用函数是存在错误。这种错误检测必须来自函数本身。
另一个例子
import socket
from concurrent.futures import ThreadPoolExecutor
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
def con():
try:
s.connect((x,y))
main()
except: socket.gaierror
err()
def err():
time.sleep(1)
con()
def main():
s.send("[+] Hello")
with ThreadPoolExecutor as exe:
exe.submit(con)
【问题讨论】:
-
所以你想抓住
KeyBoardInterrupt?这是你要问的吗? -
那么你的问题是什么?
-
您希望能够打印“YOU PRESSED CTRL+C”吗?
标签: python python-2.7 multiprocessing python-3.4 concurrent.futures