2012-04-13 6 views
2

У меня есть несколько быстрых вопросов. Если я создаю новую дочернюю нить в C, после того, как поток завершит свою обработку и завершится, выполните:Умножаются ли объекты с отображением памяти автоматически после завершения потока?

  • Объекты с отображением памяти автоматически «освобождаются»? (Я знаю, что у C нет сборщика мусора, но в этот момент ребенок прекратил свое существование)

Угадайте, что я отправил слишком быстро. Нашел ответ на второй вопрос (для будущего ref): http://www.ibm.com/developerworks/linux/library/l-memory-leaks/index.html?ca=drs-

  • Может ли ребенок возвращать значение родительскому потоку? (Возможно ли это, используя какую-то общую процедуру? Я знаю, что пространство памяти дочернего и родительского одинаково?)

Также я хотел бы упомянуть, что ОС соответствует требованиям POSIX.

Спасибо, Neco

+0

Примечание: вы должны отличаться между «дочерним/родительским» и потоками. Если ребенок возвращается и ОС обнаруживает проблему с свободной памятью, она может убить родителя. Так или иначе, вы всегда должны освобождать динамически выделенную память в C. Простой exit() недостаточно, вы можете рассмотреть jums (длинные прыжки или goto [is not evil (tm)]). – AoeAoe

ответ

4

Как вы уже выяснили, что ответ на ваш первый вопрос «нет». Это относится и к объектам, выделенным в куче.

Нет родителя & отношений между потоками в процессе, поэтому «родительская нить» не имеет смысла. Но, да, потоки могут возвращать значение при выходе. Прототип функции верхнего уровня волоске заключается в следующем:

void *function(void *); 

Заметим, что тип возвращаемого значения void *. Темы могут возвращать указатель (на все, что вам нравится). Это возвращаемое значение будет извлекаться любым другим потоком, который ждет завершения возвращаемого потока, используя pthread_join().

0

Ресурсы, такие как память, дескрипторы файлов, мьютексы и т. Д., Не выпускаются при выходе потока. Однако все связанные с процессом ресурсы выделяются при выходе из процесса, который включает в себя все эти типы объектов.

Смежные вопросы