powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Надо ли освободить (delete) объект потока в следующем коде
11 сообщений из 11, страница 1 из 1
Надо ли освободить (delete) объект потока в следующем коде
    #40005639
PrimaryPro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Подскажите пожалуйста, надо ли освободить (delete) объект потока в следующем коде? Если да, то как?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        TMonDirThread *tProc;
        tProc = new TMonDirThread(true,
            0, //soket
            Status,               //zapros
            "",                 //type
            "",
            "","","",""
        );



Спасибо за ранее!
...
Рейтинг: 0 / 0
Надо ли освободить (delete) объект потока в следующем коде
    #40005660
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PrimaryPro, каждому new на куче должен соответствовать delete. Можешь использовать умные указатели и не сильно задумываться о new и delete.
...
Рейтинг: 0 / 0
Надо ли освободить (delete) объект потока в следующем коде
    #40005665
PrimaryPro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

Спасибо за подсказку.

Но тогда встречный вопрос:
1) удалить то могу, нот это же поток. Поток уже запущен и работает, а я удаляю объект потока. Не будет ли это ошибкой?
2) а что такое умные указатели?
...
Рейтинг: 0 / 0
Надо ли освободить (delete) объект потока в следующем коде
    #40005676
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PrimaryPro
Но тогда встречный вопрос:
1) удалить то могу, нот это же поток. Поток уже запущен и работает, а я удаляю объект потока. Не будет ли это ошибкой?
Храни их в std::vector до момента завершения программы, а затем завершай и удаляй, но лучше использовать std::thread и если контролировать завершение процесса из вызывающего кода не требуется, то можно сделать потоку detach() и забыть о нём.

PrimaryPro
2) а что такое умные указатели?
На гугле забанен?
Умные указатели
...
Рейтинг: 0 / 0
Надо ли освободить (delete) объект потока в следующем коде
    #40005677
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PrimaryProудалить то могу, нот это же поток. Поток уже запущен и работает, а я удаляю объект потока.
Не будет ли это ошибкой?

Может будет может нет. Поток это всего лишь поток выполнения, с "объектом потока" он
связан только через процедуру, выполняющуюся в потоке, а что в ней написано - отсюда не видно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Надо ли освободить (delete) объект потока в следующем коде
    #40005737
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PrimaryPro
Добрый день!

Подскажите пожалуйста, надо ли освободить (delete) объект потока в следующем коде? Если да, то как?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        TMonDirThread *tProc;
        tProc = new TMonDirThread(true,
            0, //soket
            Status,               //zapros
            "",                 //type
            "",
            "","","",""
        );



Спасибо за ранее!


Безусловно, надо.
...
Рейтинг: 0 / 0
Надо ли освободить (delete) объект потока в следующем коде
    #40005990
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PrimaryPro,

и помимо освобождения (delete) надо ещё синхронизировать фазы старта логики нитки и её останова. если конечно же устойчивость работы кода вам интересна...

(круглый)
...
Рейтинг: 0 / 0
Надо ли освободить (delete) объект потока в следующем коде
    #40006812
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0
PrimaryPro,

и помимо освобождения (delete) надо ещё синхронизировать фазы старта логики нитки и её останова.

Интересно, что вы подразумеваете под синхронизацией фазы старта и останова?
...
Рейтинг: 0 / 0
Надо ли освободить (delete) объект потока в следующем коде
    #40006815
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Ничего необычного. Не надо шарить общие данные на два потока. Надо подготовить и нарезать обоим куски и передать им при старте.
...
Рейтинг: 0 / 0
Надо ли освободить (delete) объект потока в следующем коде
    #40006941
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
...что вы подразумеваете под синхронизацией фазы старта и останова?


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

(круглый)
...
Рейтинг: 0 / 0
Надо ли освободить (delete) объект потока в следующем коде
    #40006944
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я-бы по другому задал вопрос. Что-бы не делал поток - он делал какую-то полезную работу.
И до того как сделать delete, нужно получить объект представляющий отчот или результат
этой работы.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Надо ли освободить (delete) объект потока в следующем коде
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]