У меня есть несколько быстрых вопросов. Если я создаю новую дочернюю нить в C, после того, как поток завершит свою обработку и завершится, выполните:Умножаются ли объекты с отображением памяти автоматически после завершения потока?
- Объекты с отображением памяти автоматически «освобождаются»? (Я знаю, что у C нет сборщика мусора, но в этот момент ребенок прекратил свое существование)
Угадайте, что я отправил слишком быстро. Нашел ответ на второй вопрос (для будущего ref): http://www.ibm.com/developerworks/linux/library/l-memory-leaks/index.html?ca=drs-
- Может ли ребенок возвращать значение родительскому потоку? (Возможно ли это, используя какую-то общую процедуру? Я знаю, что пространство памяти дочернего и родительского одинаково?)
Также я хотел бы упомянуть, что ОС соответствует требованиям POSIX.
Спасибо, Neco
Примечание: вы должны отличаться между «дочерним/родительским» и потоками. Если ребенок возвращается и ОС обнаруживает проблему с свободной памятью, она может убить родителя. Так или иначе, вы всегда должны освобождать динамически выделенную память в C. Простой exit() недостаточно, вы можете рассмотреть jums (длинные прыжки или goto [is not evil (tm)]). – AoeAoe