It has the same general behavior as std::thread, except that jthread automatically rejoins on destruction, and can be cancelled/stopped in certain situations.
Так и быть, помогу тебе и скопирую с 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).
Ну и нафиг ты это сюда скопировал? Если бы я понимала, что там написано, этого вопроса не было бы.
Вопрос простой как полено: «объясните на пальцах чем не устраивает std::thread и зачем понадобился jthread»? Судя по всему, ты в этой теме вообще не шаришь.
Если честно, то я даж не знаю как проще. Когда вызывается деструктор у объекта jthread, который связан с тредом потомком, то там автоматически происходит join. Join ждет завершения треда, что бы у тебя корректно логика тредов отрабоатала.
Я учусь. Задание нужно выполнить с использованием jthread. И еще, главное объяснить преподавателю как оно работает. Я уже начала смотреть видосик по ссылке выше. Но дядька ну очень занудно все объясняет, там больше часа все длится.
В чем смысл отвечать на вопросы, ответы на которые лежат прямо в гугле? Прочитай скопированное и попробуй ответить на мой вопрос. Если в процессе возникнут новые – задавай.
Вообще лучше было не смотреть, а презенташку прочитать, а если кратко, то Коляна не устраивают изъяны при присоединении потоков и передача им параметров, в исходных потоках там выскакивают исключения и баги, он же предлагает по сути исправления, правки модели, которые невелируют НП и нарушение допустимости перемещаемых данных и передаваемых аргументов, в общем смотрите презенташку, там всё на примерах показано как было и как стало
Есть у тебя какая-то задача, которую нужно выполнять в цикле, будь то ассепт соединения, какая-то периодическая таска, бесконечная обработка данных чанками, не важно. Она выполняется в отдельном потоке. По какой-то причине, например, отправили SIGTERM, тебе нужно её аккуратно завершить, ничего не потеряв. Как ты это сделаешь? Ты просто заведёшь флажок и будешь при каждой итерации его проверять. Так вот, тут этот флажок уже сделали за тебя. А ещё сделали деструктор с опусканием этого флажка и автоджойном, чтобы треды всегда завершались аккуратно. А так, это просто небольшая обёртка над std::thread, вообще ничего интересного, если я правильно понял. Но я так, краем уха слышал, могу ошибаться.
Он не занудно, а объясняет. Не нравится никто - не учись, чего проще то? Полезла туда, где балом правят мозги и не въезжаешь. Может программирование это не твое? Нельзя абстрактное объяснить конкретными примерами для легкого понимания.
Да опоздал ты, уже обсосали, фбс молодец оперативно отрабатывает крестьянский вопрос. Сразу видно что мейнит эту хероту из под Страустрапа и компании старых маразматиков которые договориться не могут что же им делать с этим нагромождением костылей над сишечкой.
Там ничего абстрактного нет, более того мужик это поясняет все отлично и практически на пальцах, просто видимо Лизку тяжело в английский на слух даже с субтитрами под видео, вот и все, но тут уже выдали пачку слайдов, пускай их переводит и пережевывает.