170 похожих чатов

Всем привет. Есть такая задача: надо параллельно основному потоку программы

поспать какое-то время, а потом запустить функцию в основном потоке и умереть. Я вычитал, что Thread в данном случае — плохая практика, потому что их надо менеджить. Но asyncio в Python 3.6 — вообще не простая вещь, это оверсложная система для моей задачи. Как лучше сделать? Может даже есть готовые библиотеки, которые сами за меня всё сделают?

PS: есть прекрасный schedule, но он не для единоразового действия в конкретную дату, а для повторяющихся.

6 ответов

19 просмотров

Где ты вычитал, что «Thread в данном случае — плохая практика»?

судя по твоему описанию, у тебя уже несколько тредов. В чем проблема использовать ещё один, или выполнить твое действие в существующем?

> надо вручную менеджить убийство одних тредов с запуском других Хз, что это значит. Тред ты убить не можешь (хотя, я не уверен, может, в глубинах апи линукса так можно). Но зачем тебе убивать их? > Может ли возникнуть проблема с тем, что тредов будет слишком много? Да, может. Ну, тут все зависит от задачи. Я сомневаюсь, что тебе надо будет тысячами создавть их > Или это абстракция питоновая, и на самом деле конкёрренси — вымышленная валюта? Треды в питоне — самые обычные треды ос, но есть GIL, который разрешает исполнять только одному треду в один момент времени одну команду байикода. При этом, на io GIL отпускается, так же он может отпускаться и в сишных библиотеках

Kamil-Foatov Автор вопроса
Pavel Павлик
> надо вручную менеджить убийство одних тредов с з...

Мне надо убивать треды, потому что время сна может поменяться, и его тогда надо будет пересчитать. Или таймер могут из основной программы выключить. Решением я вижу создать один тред и как shared memory между тредом и основным потоком хранить все записи со временем, когда надо функцию запустить. Непосредственно в треде спать по секунде-минуте и проверять не надо ли случайно сейчас запускать функцию.

Kamil Foatov
Мне надо убивать треды, потому что время сна может...

может просто подключить крон к выполнению задачи?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта