2017-09-14 27 views
-1

-Interview问题线程相对于进程有什么缺点?

有人问我的thread的缺点。什么是我们不应该使用thread改用process场景?

我也没有想太多,除了在某些情况下无效的内存访问

+0

可能重复的[进程和线程之间有什么区别?](https://stackoverflow.com/q/200469/62576) –

+0

@KenWhite这篇文章只包含线程的积极点。 – roottraveller

+0

线程确实有很多优点。只是很多程序员不知道如何正确编写线程代码。死锁和种族错误很难诊断和修复。单线程进程的问题要少得多,它会隔离内存,以便另一个进程中的线程不会破坏任何内容。这种隔离也使得很难让流程合作,但是做一些事情往往会导致很难诊断和修复的错误。 –

回答

1

线程,通过相同的过程产生了,所有共享相同的存储器。进程都在自己的内存环境中运行。在Linux下(我不知道Windows下的行为是什么样子),一个新产生的子进程通常会收到父进程的内存上下文的某个部分的副本,因此在运行时会更昂贵,创建时CPU时间/ MMU明智。另外上下文切换 - (关闭)从或向CPU加载过程(出现这种情况,当一个进程或线程无关,并被推到队列赞成过程或实际工作线程) - 可能是更昂贵的一个过程。因为他们的记忆是从他们的兄弟姐妹进程的内存隔离

在另一方面过程可能会更安全。

相关问题