Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 21, 2017 00:11:02

triplustri
Зарегистрирован: 2017-01-21
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Python3 на CentOS 6, threading - 'can't start new thread', при использовании ThreadPoolExecutor

Доброго времени суток, собственно проблема в использовании ThreadPoolExecutor из пакета concurrent.futures, именно в CentOS 6 при выполнении следующего кода:

 from concurrent.futures import ThreadPoolExecutor, wait
executor = ThreadPoolExecutor()
futures = ()
for i in range(25):
    futures += executor.submit(lambda i=i: print(i)),
wait(futures)

Результат таков:

 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Traceback (most recent call last):
  File "thread.py", line 9, in <module>
    futures += executor.submit(lambda: print(i)),
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 115, in submit
    self._adjust_thread_count()
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 134, in _adjust_thread_count
    t.start()
  File "/usr/local/lib/python3.6/threading.py", line 846, in start
    _start_new_thread(self._bootstrap, ())
RuntimeError: can't start new thread

При этом в данном случае пороговое значение размера пула - 24, такое поведение не проявляется если создавать потоки вручную, то есть через threading.Thread, также на других Linux OS тот же ThreadPoolExecutor отрабатывает нормально. Очень не вериться что это баг Python именно для CentOS 6. Проверялось на Python-3.5 и 3.6. В чем может быть дело? Спасибо за внимание!

Отредактировано triplustri (Янв. 21, 2017 02:03:49)

Офлайн

#2 Янв. 21, 2017 07:59:08

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Python3 на CentOS 6, threading - 'can't start new thread', при использовании ThreadPoolExecutor

win8, ubuntu python 3.5 эффект не наблюдается.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version