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

Эмм а как можно запустить thread и чтобы он был

non-blocking ?
смотрю на .join, а ведь он blocking. Я хотел бы запустить thread и дать ему например интервал времени на протяжение которого он должен выполнится, так чтобы join только его закрыл за милисекунду когда он до него дойдет.

Юз-кейс:
посылаю код который сохарняет файл за 14 секунд в отдельный thread, сразу после этого делаю слип на 60 секунд (в это время разные треды делают разную работу) и когда просыпаюсь, хотел бы удостовериться что код на сохранение уже был выполнен в течение этих 60 секунд.

17 ответов

28 просмотров
Ilya- Автор вопроса

пришла возможно бредовая идея, а может нет, запустить на самом деле еще один тред, который бы только делал .join на пишушщий тред, но тогда проблема рекурсивная, а кто будет ждать этот тред, поэтому так тоже не пойдет.

Нипонятна…..

Почитать про синхронизацию потоков. При чём тут non-blocking я так и не понял, но указанная задача решается уж точно не слипом на 60 секунд.

Ilya- Автор вопроса
Ilya
слип это не решение, а часть условий.

Слипо-ориентированное программирование ?

Ilya
слип это не решение, а часть условий.

Решается это блокированием потока, который должен ждать до момента, когда задача завершена. Это тоже не идеальный подход к многопоточному программированию, но уж точно лучше варианта "поспать 60 секунд, а вдруг там всё успеется".

Alexander "Ternvein" Isaev
Решается это блокированием потока, который должен ...

Если один поток боокируется пока не завершится второй - точно нужен первый то ?)

Андрей Баженов
Если один поток боокируется пока не завершится вто...

Ну он писал, что он там не один. на 60 секунд (в это время разные треды делают разную работу)

Андрей Баженов
Тредпул ему в руки

Это как раз идеальный вариант, но, мне кажется, до него там пока далеко.

Ilya
пришла возможно бредовая идея, а может нет, запуст...

std::promise. И ждать фьючу. Или не ждать и юзать then/корутины, но это уже в бусте либо С++20 или тот же буст

Слава
Чем лучше?

Да хотя дя.. ему просто ждать… может на чем угодно хоть на атомике

Андрей Баженов
Может лучше condition variable ?

Мне всегда казалось, что торчащий наружу cv брать и на нем ждать это очень пахнущий код. cv ещё могут и просыпаться просто так

Любой thread не блокирующий.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
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
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта