Python Отдельная тема для списка, которая автоматически удаляется после ограничения по времени - PullRequest
0 голосов
/ 19 апреля 2020

Я хочу получить список, в который мой основной процесс будет добавлять данные, и этот отдельный поток увидит добавленные данные, подождать некоторое количество, например, 1 минуту, а затем удалить его из списка. Я не очень разбираюсь в многопоточности в python, поэтому я не знаю, как это сделать.

1 Ответ

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

Чтобы достичь этого, используйте глобальную переменную в качестве списка, поскольку ваш поток сможет получить доступ к данным из нее. Вы можете использовать деку из библиотеки коллекций, и каждый раз, когда вы добавляете что-то в очередь, вы порождаете новый поток, который просто появляется с фронта после ожидания установленного количества времени.

Хотя вы должны быть осторожны с условиями гонки. Может случиться так, что вы попытаетесь что-то написать с одного конца в вашем основном потоке и в то же время удалить что-то с самого начала в одном из ваших новых потоков, и это приведет к неожиданному поведению.

Лучший способ избежать это с помощью блокировки.

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