How to use fork() in unix? Why not something of the form fork(pointerToFunctionToRun)?

前端 未结 8 2122
盖世英雄少女心
盖世英雄少女心 2021-02-06 05:01

I am having some trouble understanding how to use Unix\'s fork(). I am used to, when in need of parallelization, spawining threads in my application. It\'s always s

8条回答
  •  后悔当初
    2021-02-06 05:49

    It is worth noting that multi-processing not exactly the same as multi-threading. The new process created by fork share very little context with the old one, which is quite different from the case for threads.

    So, lets look at the unixy thread system: pthread_create has semantics similar to CreateNewThread.

    Or, to turn it around, lets look at the windows (or java or other system that makes its living with threads) way of spawning a process identical to the one you're currently running (which is what fork does on unix)...well, we could except that there isn't one: that just not part of the all-threads-all-the-time model. (Which is not a bad thing, mind you, just different).

提交回复
热议问题