首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程和进程

问线程和进程
EN

Stack Overflow用户
提问于 2012-10-03 13:46:03
回答 2查看 159关注 0票数 0

我正在尝试修改我的操作系统概念,但我有一些困惑。我知道进程是一个拥有自己的地址空间的线程。

1)死锁是由线程还是进程引起的?(线程共享进程的堆栈,因为不同的进程具有不同的堆栈)。

2)单个进程会导致死锁吗?或者是否需要多个进程才会发生死锁?

我不确定这是否是问这个问题的正确地方。如果没有,请告诉我,我会删除该问题。

EN

回答 2

Stack Overflow用户

发布于 2012-10-03 13:53:09

线程和进程都可能陷入死锁,这取决于它们试图锁定的内容。如果它们想要锁定的资源是在进程内共享的资源(例如临界区),线程可能会陷入死锁。另一方面,如果它是一个全局共享的资源(例如,命名互斥),进程可能会陷入死锁。对于2),必须涉及多个进程,因为必须有多个进程尝试锁定(全局)共享资源才会发生死锁。

票数 2
EN

Stack Overflow用户

发布于 2012-10-03 13:54:55

答案在于你的问题本身。每个进程都有一个堆栈,该进程创建的所有线程都共享该堆栈。每当同一进程的两个线程请求一个资源(data,comm,...)其他线程锁定并依次等待其他资源的释放,然后发生死锁。

答案:

对于1)

线程导致进程内的死锁,进程导致父进程内的死锁(在大多数情况下是操作系统)

对于2)

是的,单个进程可能会导致死锁。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12702523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档