От новичка до гуру: Курсы программирования на CyberDuff

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

Каково влияние освобождения структуры, содержащей pthread_t, на сам поток? У меня есть структура, представляющая поток:

typedef struct car{
int cur_place;
pthread_t car_thread;
}car;

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

void * car_thread(void * number){
int num = *(int *)number;
    free(maze[num]);
    maze[num] = NULL;
pthread_exit(NULL);
}

Является ли это возможным? что произойдет с потоком после того, как я освобожу удерживающий его поток? будут ли он запускать следующие строки?

заранее спасибо.

11.12.2013

  • Ничего не произошло. Однако убедитесь, что у вас есть способ отсоединить нить. 11.12.2013
  • это просто дескриптор вашего потока, с потоком ничего не происходит, это то же самое, что делать i=0, x=0, что угодно=0, вы просто очищаете переменную. 11.12.2013

Ответы:


1

Освобождение car освобождает только память, используемую для хранения этих значений. Тема будет еще где-то там где-то возможно. Думайте о pthread_t просто как о номере или адресе, используемом системой для обсуждения темы. Не сама нить.

Только не обращайтесь к воспоминаниям car после того, как они были освобождены.

11.12.2013
  • Радуйся, что не поговорила с моим двоюродным братом. Он обычно говорил людям, что они должны предупредить своих друзей, прежде чем удалять номера из телефонной книги, иначе телефонная компания отключит другой телефон. 11.12.2013

  • 2

    Вы только что освободили место хранения идентификатора потока, структура данных, в которой хранятся атрибуты потока, освобождается, когда вы выполняете pthread_exit(NULL). Поэтому ответ на ваш вопрос: нить все еще существует.

    11.12.2013

    3

    Поток не завершится до тех пор, пока не будет вызвана функция pthread_exit() или, если у вас есть встроенная обработка сигналов, пока не будет получен сигнал для выхода. Поток присоединен к процессу, но разные потоки являются изолированными объектами, пока вы не свяжете их в какую-либо организацию потоков. Извините за расплывчатую формулировку, но это лучший способ, которым я могу это описать.

    Если вы намереваетесь сигнализировать автомобилям о выходе, когда вы освобождаете структуру данных, вам необходимо иметь встроенную обработку сигналов, чтобы уведомить каждый поток о выходе. Или каким-то образом вызовите pthread_exit() в каждом потоке.

    11.12.2013
    Новые материалы

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

    Игра в прятки с данными
    Игра в прятки с данными Я хотел бы, чтобы вы сделали мне одолжение и ответили на следующие вопросы. Гуглить можно в любое время, здесь никто не забивается. Сколько регионов в Гане? А как..

    «Раскрытие математических рассуждений с помощью Microsoft MathPrompter и моделей больших языков»
    TL;DR: MathPrompter от Microsoft показывает, как использовать математические рассуждения с большими языковыми моделями; 4-этапный процесс для улучшения доверия и рассуждений в математических..

    Раскройте свой потенциал в области разработки мобильных приложений: Абсолютная бесплатная серия
    Глава 6: Работа в сети и выборка данных Глава 1: Введение в React Native Глава 2: Основы React Native Глава 3: Создание пользовательского интерфейса с помощью React Native Глава 4:..

    Все о кейсах: Camel, Snake, Kebab & Pascal
    В программировании вы сталкивались с ними при именовании переменной, класса или функции. Поддержание согласованности типов и стилей случаев делает ваш код более читабельным и облегчает совместную..

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

    🔥🔥👉Питон 🆚Javascript👈🔥🔥
    Сегодня Python и Javascript потрясают мир в области ИТ. Все хотят выучить Python и Javascript, чтобы получить высокооплачиваемую работу. Различные фреймворки Python и Javascript расширяют..