网络编程中设计并发服务器,使用多进程 与 多线程 ,请问有什么区别?
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>>
答案一:
1,進(jìn)程:子進(jìn)程是父進(jìn)程的復(fù)制品。子進(jìn)程獲得父進(jìn)程數(shù)據(jù)空間、堆和棧的復(fù)制品。
2,線程:相對(duì)與進(jìn)程而言,線程是一個(gè)更加接近與執(zhí)行體的概念,它可以與同進(jìn)程的其他線程共享數(shù)據(jù),但擁有自己的棧空間,擁有獨(dú)立的執(zhí)行序列。
兩者都可以提高程序的并發(fā)度,提高程序運(yùn)行效率和響應(yīng)時(shí)間。
線程和進(jìn)程在使用上各有優(yōu)缺點(diǎn):線程執(zhí)行開(kāi)銷小,但不利于資源管理和保護(hù);而進(jìn)程正相反。同時(shí),線程適合于在SMP機(jī)器上運(yùn)行,而進(jìn)程則可以跨機(jī)器遷移。
答案二:
根本區(qū)別就一點(diǎn):用多進(jìn)程每個(gè)進(jìn)程有自己的地址空間(address space),線程則共享地址空間。所有其它區(qū)別都是由此而來(lái)的:
1。速度:線程產(chǎn)生的速度快,線程間的通訊快、切換快等,因?yàn)樗麄冊(cè)谕粋€(gè)地址空間內(nèi)。
2。資源利用率:線程的資源利用率比較好也是因?yàn)樗麄冊(cè)谕粋€(gè)地址空間內(nèi)。
3。同步問(wèn)題:線程使用公共變量/內(nèi)存時(shí)需要使用同步機(jī)制還是因?yàn)樗麄冊(cè)谕粋€(gè)地址空間內(nèi)。
轉(zhuǎn)載于:https://my.oschina.net/xyxlxd/blog/9730
總結(jié)
以上是生活随笔為你收集整理的网络编程中设计并发服务器,使用多进程 与 多线程 ,请问有什么区别?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android中可口的吐司,一种信息提示
- 下一篇: 数据源名称和 64 位操作系统