Один поток всегда является главным и при его завершении, завершается программа.
Согласование потоков - семафоры.
Семафор — объект, позволяющий войти в заданный участок кода не более чем n потокам.
threading.BoundedSemaphore отличается от threading.Semaphore тем что не даёт сделать release() больше чем сделан acquire()
threading.lock()
Для выполнения кода, поток должен захватит замОк. После выполнения замОк освобождается.
Атомарные операции безопасные для многопоточности:
Согласование потоков - семафоры.
Семафор — объект, позволяющий войти в заданный участок кода не более чем n потокам.
threading.BoundedSemaphore отличается от threading.Semaphore тем что не даёт сделать release() больше чем сделан acquire()
threading.lock()
Для выполнения кода, поток должен захватит замОк. После выполнения замОк освобождается.
Атомарные операции безопасные для многопоточности:
- чтение или изменение одного атрибута объекта
- чтение или изменение одной глобальной переменной
- выборка элемента из списка
- модификация списка "на месте" (т.е. с помощью метода append)
- выборка элемента из словаря
- модификация словаря "на месте" (т.е. добавление элемента, или вызов метода clear)
Комментариев нет:
Отправить комментарий