Есть ли такая вещь, как слишком много потоков в прерванном состоянии? - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть следующий код Python (я думаю, что мой вопрос относится ко всем языкам программирования):

from threading import Thread, BoundedSemaphore

# ... other things ...

mutex = BoundedSemaphore()
def some_function():
    with mutex:
        # do something with a globally available object

Thread(target=some_function).start()
# do something else after the thread invokation

Многие потоки, начинающиеся с some_function, запускаются, но только один из таких потоков выполняется из-за мьютекс.

Мой вопрос: могу ли я достичь точки, когда моя операционная система не может обработать такое количество потоков, даже если одновременно выполняется только один поток? Я уже искал ответ (например, в этой теме , но речь идет об измерении), но никто не упомянул ничего о прерванных потоках.

Заранее спасибо за ваше время и ваши ответы. :)

1 Ответ

0 голосов
/ 10 апреля 2020

Хорошо, я понял, что могу добиться того же с двумя потоками: один поток имеет очередь заданий для выполнения, и каждый раз он извлекает одно (если оно есть), а другой добавляет задания в очередь, когда это необходимо, и выполняет другие действия. также. Таким образом, я не беспокоюсь о многопоточности «махинаций» (конечно, эта очередь может стать довольно большой, но это другая проблема).

Спасибо всем. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...