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

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

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

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

17 ответов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Гайз, кто-нибудь пробовал запустить probe-rs под камень, которого нет в probe-rs? Мб есть какой-нибудь пример у кого... Через target-gen попробовал сгенерировать chip-descript...
Максим Смирнов
2
зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
@NikaBelurgHR Бот? Ассемблер?
КТ315
11
юзеры Jetpack Compose тут?
Qtless Qtless
7
Добрый день! Подскажите, пожалуйста: какими компетенциями нужно обладать, чтобы претендовать на работу эрланг (отдельная благодарность, если про элексир тоже подскажете) разр...
via ☸️ led
20
Карта сайта