如何正确使用子进程和子线程
2个回答
2017-05-01 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
正确使用子进程和子线程:
子进程就是被父进程创建或者启动而来的,子线程是被父进程创建而来的。子进程作为一个进程,与父进程属于一个级别,是平等的关系,只是父进程可以通过子进程句柄管理子进程罢了。父进程和子进程都拥有各自的独立的虚拟进程地址,相互不干扰。而子线程则不然。子线程从属于进程,没有进程子线程就无依无靠,就无法生存。虽然操作系统对CPU的调度是以线程为单位的,但是线程生活依赖进程,进程是线程的基地。
以上是子进程和子线程的基本区别。那么针对这些区别,我们看看如何区别使用。子进程是拥有独立空间的,执行时和父进程是互不干扰的,因此,子进程和父进程的通信就不那么容易了,需要借助进程通信机制。而子线程则在进程中,通信很容易。所以,如果创建新的任务时,需要进行大量的通信,且不想需要很大的代价,那么还是用子线程比较好。
而子进程与父进程的地址空间的隔绝,一方面成为通信的阻碍,另一方面也是一个好处。如果创建的任务,需要操作一些数据,很可能会修改掉父进程的数据,这样就带来了麻烦。其实这也是设计进程间相互隔绝的初衷。如果是这种需求,或者安全需求,或者你想限制子进程访问父进程规定的数据,就需要使用这种方式,而不要使用线程。访问数据时,通过进程间通信机制,就可以很好的控制访问。
子进程就是被父进程创建或者启动而来的,子线程是被父进程创建而来的。子进程作为一个进程,与父进程属于一个级别,是平等的关系,只是父进程可以通过子进程句柄管理子进程罢了。父进程和子进程都拥有各自的独立的虚拟进程地址,相互不干扰。而子线程则不然。子线程从属于进程,没有进程子线程就无依无靠,就无法生存。虽然操作系统对CPU的调度是以线程为单位的,但是线程生活依赖进程,进程是线程的基地。
以上是子进程和子线程的基本区别。那么针对这些区别,我们看看如何区别使用。子进程是拥有独立空间的,执行时和父进程是互不干扰的,因此,子进程和父进程的通信就不那么容易了,需要借助进程通信机制。而子线程则在进程中,通信很容易。所以,如果创建新的任务时,需要进行大量的通信,且不想需要很大的代价,那么还是用子线程比较好。
而子进程与父进程的地址空间的隔绝,一方面成为通信的阻碍,另一方面也是一个好处。如果创建的任务,需要操作一些数据,很可能会修改掉父进程的数据,这样就带来了麻烦。其实这也是设计进程间相互隔绝的初衷。如果是这种需求,或者安全需求,或者你想限制子进程访问父进程规定的数据,就需要使用这种方式,而不要使用线程。访问数据时,通过进程间通信机制,就可以很好的控制访问。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询