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

Ну в потоке если я while true сделаю, а потом

закрою прогармму, поток закроется сам или будет в памяти висеть?

51 ответов

21 просмотр

дождаться его завершения, метод join

belsimos- Автор вопроса

Поскольку поток это дочерний процесс то нет

Vladislav Vasil'ev
Поскольку поток это дочерний процесс то нет

Перестаньте бредить, поток это не процесс

belsimos- Автор вопроса
Vladislav Vasil'ev
Это делает его не дочерним?

Это делает его таким, будто он сам как программа

belsimos- Автор вопроса
Vladislav Vasil'ev
Я тебя удивлю

Мы не только про линукс говорим)

belsimos
Это делает его таким, будто он сам как программа

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

Till Schneider
Мы не только про линукс говорим)

Я не шарю как это в винде(ведь в теории также, только системные вызовы другие?), просто для лёгкого понимания рассказываю на такой аналогии

belsimos- Автор вопроса
Vladislav Vasil'ev
Верно. Ведь если ты запустишь программу из термина...

Нет, она в процессах висеть будет, можешь проверить

Vladislav Vasil'ev
Я не шарю как это в винде(ведь в теории также, тол...

В винде иначе, и в общем случае, поток (thread) не является отдельным процессом, как это реализовано внутри ОС - не суть важно с точки зрения стандарта C++

belsimos
Нет, она в процессах висеть будет, можешь проверит...

Ну проверил, процесс завершился когда терминал закрыл. Сам проверь кек)

Till Schneider
В винде иначе, и в общем случае, поток (thread) не...

Обычно поток это что-то вроде процесса с одной виртуальной памятью с главным, но со своим стеком В винде это по-другому работает?(я за реализацию потоков в винде не шарю)

Vladislav Vasil'ev
Обычно поток это что-то вроде процесса с одной вир...

Хорош фантазировать и бредить. Всё определяется конкретной реализацией в конкретной либе для многопоточности. А там могут и на процессах сделать и не на процессах и вообще на кластере разных компов.

Да. Это обратное тому что ты сказал? Тут Илья в чате я не хочу флуд разводить

Не закроется

Vladislav Vasil'ev
Обычно поток это что-то вроде процесса с одной вир...

В конце 90-х вышла книжка от авторов Java, в которой они упоминали, что им хотелось иметь в ней более легковесные треды, чем натуральные процессы на солярисе, и про их удивление, что на винде они такие и есть "из коробки", и шедулинг работает лучше.

Vladislav Vasil'ev
Обычно поток это что-то вроде процесса с одной вир...

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

Vladislav Vasil'ev
Верно. Ведь если ты запустишь программу из термина...

Не надо этот юниксовый-линуксовый хлам тащить в общий чат по языку. Понятия процессов и потоков в операционных системах и с++ - разные, в с++ например процессов нет вообще.

Ilya Zviagin
Он прав...

Вот сейчас решил проверить. Я создал 8 потоков, в htop у них у всех разные process id. Как инaче?(ща в лс картинку с кодом отошлю)

Vladislav Vasil'ev
Вот сейчас решил проверить. Я создал 8 потоков, в ...

как оно бывает по другому - читайте в доках MS

А, понял. Тогда да

Vladislav Vasil'ev
Вот сейчас решил проверить. Я создал 8 потоков, в ...

Если ты работаешь в Linux, то ты должен знать то идентификатор процесса не только в htop А во многих других утилитах, на самом деле является идентификатором потока операционной системы.

Vladislav Vasil'ev
А, понял. Тогда да

Собственно то что ты описал это уникальная особенность Linux, ядра

Ilya Zviagin
Не надо этот юниксовый-линуксовый хлам тащить в об...

Т.е. получается, если начну писать приложение под unix, linux, то не смогу организовать многозадачность? Как понимать процесс != поток, во всех умных книжках пишут для одноядерных процессоров процесс=потоку. Не силен в многопоточности, чтобы не было путаницы для новичков, лучше разъяснить вот эти моменты. Спор выше, конечно, был интересный, но больше запутал, чем дал однозначный ответ.

Rearden
Т.е. получается, если начну писать приложение под ...

На уровне начала изучения. Процесс - это все твоё приложение. Потоки, это потоки выполнения команд внутри приложения.

Rearden
Т.е. получается, если начну писать приложение под ...

Если такое видишь где-то в книжке это очень плохая книжка видимо

Rearden
Т.е. получается, если начну писать приложение под ...

Организовать конечно сможешь, потому что Современный Linux, современный unix, чаще всего в виде FreeBSD, они поддерживают многопоточность уже сейчас. Но изначально еë там не было

Ilya Zviagin
Организовать конечно сможешь, потому что Современн...

Что есть изначально? Многопроцессность и многопоточность были еще до собственно появления юниха и даже на одном ядре. Есть много вариантов, как и для чего ее делать. Например ОСРВ подход. Да и на однокристалках и сейчас ее реализуют и часто не POSIX.

"И сейчас ее реализуют и часто не POSIX"-вы пытаетесь утоить от нас ценную информацию. POSIX - наше все, если часто и не на POSIX, может пришлете ссылки на код в github, может в хороших книжках реализацию?

Rearden
Т.е. получается, если начну писать приложение под ...

так и есть, но это псевдо многозадачность. И к сожалению процессоры работают не на магии, и пока что на смену задачи требуются ресурсы, поэтому плодить 100500 потоков не самая лучшая идея. В любом случае в итоге это все встанет в очередь и выполнится последовательно, но организация этого не твоя забота. Если ядра у цп 4, то и эффективно работать смогут 4 потока

Rearden
"И сейчас ее реализуют и часто не POSIX"-вы пытает...

Не пришлю, потому что не вижу смысла от нехер делать лазить в такие внутренности. Обычно просто юзаю то, что сделали разрабы платформы.

Aniki Hi$ok@ 🌈 Z 🐀
так и есть, но это псевдо многозадачность. И к сож...

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

Aniki Hi$ok@ 🌈 Z 🐀
так и есть, но это псевдо многозадачность. И к сож...

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

Viktor Chyzhdzenka
Не станет. Можно с учетом приоритетной очереди выд...

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

Aniki Hi$ok@ 🌈 Z 🐀
да, приоритетной очереди, а определять приоритет б...

Иди как почитай про это всё на других осях, особенно на старых.

Viktor Chyzhdzenka
Иди как почитай про это всё на других осях, особен...

А зачем старые оси, пора в мусорку выкидывать все. Оставим linux, macos, freebsd.

Viktor Chyzhdzenka
Иди как почитай про это всё на других осях, особен...

да, так и захотелось писать ПО под старые ос, зачем нам линукс и виндовс

Aniki Hi$ok@ 🌈 Z 🐀
да, так и захотелось писать ПО под старые ос, заче...

Потому что разумно понимать, как оно всё это появлялось и почему, а не заучивать как библию.

Viktor Chyzhdzenka
Потому что разумно понимать, как оно всё это появл...

я не знаю как работает много поточность на современных системах, даже библию не учил, как же так 🤝

Где там?

Viktor Chyzhdzenka
Где там?

В операционках для DEC, VAX, IBM370, и так далее. Идея многопоточности не так уж стара.

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

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

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
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
3
Карта сайта