当前位置:C++技术网 > 资讯 > 如何正确使用子进程和子线程

如何正确使用子进程和子线程

更新时间:2015-06-24 00:22:20浏览次数:1+次

    子进程就是被父进程创建或者启动而来的,子线程是被父进程创建而来的。子进程作为一个进程,与父进程属于一个级别,是平等的关系,只是父进程可以通过子进程句柄管理子进程罢了。父进程和子进程都拥有各自的独立的虚拟进程地址,相互不干扰。而子线程则不然。子线程从属于进程,没有进程子线程就无依无靠,就无法生存。虽然操作系统对CPU的调度是以线程为单位的,但是线程生活依赖进程,进程是线程的基地。
    以上是子进程和子线程的基本区别。那么针对这些区别,我们看看如何区别使用。子进程是拥有独立空间的,执行时和父进程是互不干扰的,因此,子进程和父进程的通信就不那么容易了,需要借助进程通信机制。而子线程则在进程中,通信很容易。所以,如果创建新的任务时,需要进行大量的通信,且不想需要很大的代价,那么还是用子线程比较好。
    而子进程与父进程的地址空间的隔绝,一方面成为通信的阻碍,另一方面也是一个好处。如果创建的任务,需要操作一些数据,很可能会修改掉父进程的数据,这样就带来了麻烦。其实这也是设计进程间相互隔绝的初衷。如果是这种需求,或者安全需求,或者你想限制子进程访问父进程规定的数据,就需要使用这种方式,而不要使用线程。访问数据时,通过进程间通信机制,就可以很好的控制访问。
    至于其他的,暂时没什么特别的说明,在此只是简要的将两者的区别和使用时间说明一下。如果你有更多的主意,请帮忙补充。