简体   繁体   中英

ThreadPoolExecutor is not defined [python3]

I'm trying to run the following code, which was directly copied from the documentation: https://docs.python.org/dev/library/concurrent.futures.html#module-concurrent.futures :

import executor
import concurrent.futures
import time

def wait_on_b():
    time.sleep(5)
    print(b.result()) # b will never complete because it is waiting on a.                                
    return 5

def wait_on_a():
    time.sleep(5)
    print(a.result()) # a will never complete because it is waiting on b.                                
    return 6


executor = ThreadPoolExecutor(max_workers=2)
a = executor.submit(wait_on_b)
b = executor.submit(wait_on_a)

And I get the following output:

Traceback (most recent call last):
  File "test1.py", line 16, in <module>
    executor = ThreadPoolExecutor(max_workers=2)
NameError: name 'ThreadPoolExecutor' is not defined

I'm assuming that I forgot to import something, but I don't know.

Either use from concurrent.futures import ThreadPoolExecutor instead of import concurrent.futures , or leave the import as-is and use executor = concurrent.futures.ThreadPoolExecutor(maxworkers=2) .

Also note that the example code you copied is designed to deadlock, so it's not going to work properly once you fix the import issue.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM