LINUX.ORG.RU

Ответ на: удаленный комментарий

Не надо мне читать морали. Хочу понимать зачем вводить новую сущность.

Почему не использовать типа

std::atomic_bool stop_thread_ = false;

if (stop_thread_)
    return;

В другом потоке

stop_thread_ = true;
thread_.join ();
Zpp
() автор топика
Ответ на: комментарий от Zpp

Так и быть, помогу тебе и скопирую с cppreference текст.

The class jthread represents a single thread of execution. It has the same general behavior as std::thread, except that jthread automatically rejoins on destruction, and can be cancelled/stopped in certain situations.

Threads begin execution immediately upon construction of the associated thread object (pending any OS scheduling delays), starting at the top-level function provided as a constructor argument. The return value of the top-level function is ignored and if it terminates by throwing an exception, std::terminate is called. The top-level function may communicate its return value or an exception to the caller via std::promise or by modifying shared variables (which may require synchronization, see std::mutex and std::atomic)

Unlike std::thread, the jthread logically holds an internal private member of type std::stop_source, which maintains shared stop-state. The jthread constructor accepts a function that takes a std::stop_token as its first argument, which will be passed in by the jthread from its internal stop_source. This allows the function to check if stop has been requested during its execution, and return if it has.

std::jthread objects may also be in the state that does not represent any thread (after default construction, move from, detach, or join), and a thread of execution may be not associated with any jthread objects (after detach).

Как твой atomic_bool реализует данное поведение?

Siborgium ★★★★★
()
Последнее исправление: Siborgium (всего исправлений: 1)
Ответ на: комментарий от Siborgium

Ну и нафиг ты это сюда скопировал? Если бы я понимала, что там написано, этого вопроса не было бы.

Вопрос простой как полено: «объясните на пальцах чем не устраивает std::thread и зачем понадобился jthread»? Судя по всему, ты в этой теме вообще не шаришь.

Zpp
() автор топика
Ответ на: комментарий от Zpp

Вопрос простой как полено: «объясните на пальцах чем не устраивает std::thread и зачем понадобился jthread»?

ответ прост, чем тебя не устраивает std::thread? используй его все также...

anonymous2 ★★★★★
()

Что такое jthread?
В каком адресном пространстве работает код из so?

Обучаю работе в линуксе и программированию

/0

anonymous
()
Ответ на: комментарий от Zpp

Если честно, то я даж не знаю как проще. Когда вызывается деструктор у объекта jthread, который связан с тредом потомком, то там автоматически происходит join. Join ждет завершения треда, что бы у тебя корректно логика тредов отрабоатала.

Aswed ★★★★★
()
Ответ на: комментарий от anonymous2

Я учусь. Задание нужно выполнить с использованием jthread. И еще, главное объяснить преподавателю как оно работает. Я уже начала смотреть видосик по ссылке выше. Но дядька ну очень занудно все объясняет, там больше часа все длится.

Zpp
() автор топика

Что, ученик задал неудобный вопрос? :D:D:D

anonymous
()
Ответ на: комментарий от anonymous

этот тролль потом на ютубчеке обучающие видео снимает

и продает за деньги что бы эти видео покупало и смотрело школоло

anonymous
()
Ответ на: комментарий от Zpp

Я уже начала смотреть видосик по ссылке выше.

Молодец что начала смотреть. Норм, там уже на первых минутах примеры чем jthread лучше чем обычный thread.

fsb4000 ★★★★★
()
Ответ на: комментарий от anonymous8

хуже - пмс, не может сосредоточиться что бы прочитать и понять прочитанное

anonymous
()
Ответ на: комментарий от Zpp

В чем смысл отвечать на вопросы, ответы на которые лежат прямо в гугле? Прочитай скопированное и попробуй ответить на мой вопрос. Если в процессе возникнут новые – задавай.

Siborgium ★★★★★
()
Ответ на: комментарий от SR_team

@Zpp , я согласен с @Siborgium . Не задавай вопросы на лоре, уровень экспертов тут в районе дна. Смотри/читай первоисточники. Youtube рулит.

fsb4000 ★★★★★
()
Ответ на: комментарий от Zpp

Вообще лучше было не смотреть, а презенташку прочитать, а если кратко, то Коляна не устраивают изъяны при присоединении потоков и передача им параметров, в исходных потоках там выскакивают исключения и баги, он же предлагает по сути исправления, правки модели, которые невелируют НП и нарушение допустимости перемещаемых данных и передаваемых аргументов, в общем смотрите презенташку, там всё на примерах показано как было и как стало

AKonia ★★
()
Ответ на: комментарий от fsb4000

Хоу, дык это ж Джосаттис - это авторитетный автор.

rumgot ★★★★★
()
Ответ на: комментарий от Zpp

то есть вся остальная халабуда под названием с++ тебя не смущает?

anonymous
()
Ответ на: комментарий от Zpp

А это не преподователь ли тебе объяснять должен?

Короче, на пальцах.

Есть у тебя какая-то задача, которую нужно выполнять в цикле, будь то ассепт соединения, какая-то периодическая таска, бесконечная обработка данных чанками, не важно. Она выполняется в отдельном потоке. По какой-то причине, например, отправили SIGTERM, тебе нужно её аккуратно завершить, ничего не потеряв. Как ты это сделаешь? Ты просто заведёшь флажок и будешь при каждой итерации его проверять. Так вот, тут этот флажок уже сделали за тебя. А ещё сделали деструктор с опусканием этого флажка и автоджойном, чтобы треды всегда завершались аккуратно. А так, это просто небольшая обёртка над std::thread, вообще ничего интересного, если я правильно понял. Но я так, краем уха слышал, могу ошибаться.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от Zpp

Он не занудно, а объясняет. Не нравится никто - не учись, чего проще то? Полезла туда, где балом правят мозги и не въезжаешь. Может программирование это не твое? Нельзя абстрактное объяснить конкретными примерами для легкого понимания.

anonymous
()
Ответ на: комментарий от WitcherGeralt

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

anonymous
()
Ответ на: комментарий от anonymous

Так пишет же, что цитаты ваши нипанятные, видео УГ, «поясните на пальцах». Вот и пояснил.

Правда, я сначала написал, а потом уже дошло, что тред полдня как протух.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

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

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от WitcherGeralt

Я почему то решил, что вопрос про грин треды

SR_team ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.