线程之间共享哪些资源?

最近,我在一次采访中被问到一个问题:流程和线程之间有什么区别。真的,我不知道答案。我想了一会儿,然后给出了一个非常奇怪的答案

线程共享相同的内存,进程不共享。回答完这个问题后,面试官恶狠狠地笑了我一笑,并向我提出了以下问题:

问:你知道一个节目分成哪些部分吗?

我的回答是:是的(虽然很简单)堆栈、数据、代码、堆

问:那么,告诉我:线程共享哪些部分?

我无法回答这个问题,最后都说了出来

请问,对于进程和线程之间的区别,谁能给出正确且令人印象深刻的答案

你说得很对,但是线程共享除堆栈之外的所有段。线程有独立的调用堆栈,但是其他线程堆栈中的内存仍然可以访问,理论上,您可以在其他线程的本地堆栈框架中保存指向内存的指针(尽管您可能应该找到一个更好的位置来放置该内存!)

发表评论