我阅读了以下内容,并想知道是否可能或正确!
"创建执行和创建1st的应用程序进程(A) 线程来执行应用程序(应用程序进程(B))。第二个 可以在应用程序进程(A)中创建线程 执行代理程序(线程或进程C)。因此,应用程序进程(B)和代理程序(线程或进程C)可以共享操作系统分配的资源。"
我的问题是:
我认为这是一个过程'即使资源是由其他进程(父进程)创建/执行的,资源也是隔离的。 如果我错了,我会很高兴得到他们共享的资源以及上面列出的用例以及操作系统(Windows / iOS / Linux)中的哪些情况。
谢谢! 乔
答案 0 :(得分:2)
1 - 2:有可能。
有两个线程,一个将生成子进程B,另一个子进程C.由于这两个线程都属于同一个共享地址空间,因此线程本身共享IO资源和内存。
子进程通常可以与父进程共享文件句柄和可能的其他资源,但这取决于操作系统,而不是您的应用程序应该关注的内容。
答案 1 :(得分:1)
我对你的两个问题的原始答案是否,但在John的评论之后,我添加了一个点 - 凭借父母和孩子之间共享文件描述符的方式进程,两个兄弟进程可能最终在它们之间共享文件描述符。
现在有人可以用简单的语言向我解释文件描述符吗?是的,答案是here.
父进程A可以与其子进程B和C共享文件描述符,因此B& C将共享文件描述符(虽然由操作系统决定)。
除此之外,线程C也不会与进程B共享任何资源,因为该线程属于进程A,进程C也不会与从同一父进程创建的另一个进程B共享任何资源。
如果进程B和C共享任何内容,那么它将仅与其父进程共享。对于某些B和C不会分享任何内容,无论是从同一父母创建的,也不管C是进程还是线程。引用维基百科文章here:
通常,子进程只执行一小组操作 在它停止执行其程序以支持该程序之前 开始,它需要很少,如果有的话,它的父母的数据 结构。
有多种方法可以实现进程间通信(又称IPC),可以看到它们here。
答案 2 :(得分:0)
相同进程的线程共享: 流程说明, 描述符, 信号和信号处理程序 当前工作目录, 用户和组。