Concurrent.futures.ThreadPoolExecutor не выводит ошибкиPython

Программы на Python
Ответить
Anonymous
 Concurrent.futures.ThreadPoolExecutor не выводит ошибки

Сообщение Anonymous »

Я пытаюсь использовать модуль concurrent.futures.ThreadPoolExecutor для параллельного запуска метода класса. Упрощенная версия моего кода примерно следующая:

Код: Выделить всё

class TestClass:

def __init__(self, secondsToSleepFor):

self.secondsToSleepFor = secondsToSleepFor

def testMethodToExecInParallel(self):

print("ThreadName: " + threading.currentThread().getName())

print(threading.currentThread().getName() + " is sleeping for " + str(self.secondsToSleepFor) + " seconds")

time.sleep(self.secondsToSleepFor)

print(threading.currentThread().getName() + " has finished!!")

with concurrent.futures.ThreadPoolExecutor(max_workers = 2) as executor:

futuresList = []

print("before try")

try:

testClass = TestClass(3)

future = executor.submit(testClass.testMethodToExecInParallel)

futuresList.append(future)

except Exception as exc:

print('Exception generated: %s' % exc)
Если я выполняю этот код, кажется, что он ведет себя так, как и предполагалось.
Но если я допущу ошибку, например указав неправильное количество параметров в «testMethodToExecInParallel», например:< /p>

Код: Выделить всё

 def testMethodToExecInParallel(self, secondsToSleepFor):
и затем все равно отправляем функцию как:

Код: Выделить всё

future = executor.submit(testClass.testMethodToExecInParallel)
или попытаться объединить строковый объект с целочисленным объектом (без использования str(.) ) внутри оператора печати в методе «testMethodToExecInParallel»:

Код: Выделить всё

def testMethodToExecInParallel(self):

print("ThreadName: " + threading.currentThread().getName())
print("self.secondsToSleepFor: " + self.secondsToSleepFor) 

Подробнее здесь: [url]https://stackoverflow.com/questions/54777947/concurrent-futures-threadpoolexecutor-doesnt-print-errors[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»