Multithreaded fork

后端 未结 3 897
逝去的感伤
逝去的感伤 2020-12-03 13:45

Can fork() function be used to replicate a multithreaded process. And if so, will all threads be exactly the same and if not, why not. If replication can\'t be done through

相关标签:
3条回答
  • 2020-12-03 14:19

    No, the child will only have one thread. Forking a threaded process is not trivial. (See this article Threads and fork(): think twice before mixing them for a good rundown).

    I don't know of any way of cloning a process and all its threads, I don't think that's possible on Linux.

    0 讨论(0)
  • 2020-12-03 14:23

    No.

    A fork creates a new process with his own thread(s), copies the file descriptor and the virtual memory.

    A child process does NOT share the same memory with his father. So this is absolutely not the same.

    0 讨论(0)
  • 2020-12-03 14:25

    After a fork, only one thread is running in the child. This is a POSIX standard requirement. See the top answer to the question fork and existing threads ?.

    0 讨论(0)
提交回复
热议问题