您对线程和进程的理解是怎样的?
直观的说,一个进程就是一个打开的应用软件,windows下可以使用任务管理器看到所有进程。linux下可以使用命令htop查看所有进程。一个进程可以包含几个线程,这些线程通过操作系统的调度“并行执行”。每个进程都有自己独立的内存空间。而线程则共享自己所属进程的资源空间。
线程间的通信要简单的多,因为线程间的内存空间是可以直接访问的,只需要做好临界保护即可。
进程间的通信要复杂一些,常用的进程间通信技术有管道、共享内存、套接字等。
进程是程序的最小调度单元,而线程是CPU的最小调度单元;
进程有独立的代码和内存空间,程序之间的切换需要较大的开销;
线程主要是用来处理一些耗时操作,线程间可以共享内存和代码;每个线程都有自己的独立运行栈,线程之间的切换开销小;
程序运行的时候会为每个进程分配内存空间,线程是CPU调度的,不会分配内存空间,每个线程间是共享资源的。
绛旓細杩涚▼鏄鎿嶄綔绯荤粺缁撴瀯鐨勫熀纭锛涙槸涓涓鍦ㄦ墽琛岀殑绋嬪簭锛涜绠楁満涓鍦ㄨ繍琛岀殑绋嬪簭瀹炰緥锛涘彲浠ュ垎閰嶇粰澶勭悊鍣ㄥ苟鐢卞鐞嗗櫒鎵ц鐨勪竴涓疄浣擄紱鐢卞崟涓椤哄簭鐨勬墽琛屾樉绀猴紝涓涓綋鍓嶇姸鎬佸拰涓缁勭浉鍏崇殑绯荤粺璧勬簮鎵鎻忚堪鐨勬椿鍔ㄥ崟鍏冦傝繘绋嬩负搴旂敤绋嬪簭鐨勮繍琛屽疄渚嬶紝鏄簲鐢ㄧ▼搴忕殑涓娆″姩鎬佹墽琛屻傜湅浼奸珮娣憋紝鎴戜滑鍙互绠鍗曞湴鐞嗚В涓猴細瀹冩槸鎿嶄綔绯荤粺...
绛旓細杩涚▼鏈夌嫭绔嬬殑鍦板潃绌洪棿锛屼竴涓繘绋嬪穿婧冨悗锛屽湪淇濇姢妯″紡涓嬩笉浼氬鍏跺畠杩涚▼浜х敓褰卞搷锛岃岀嚎绋嬪彧鏄竴涓繘绋嬩腑鐨勪笉鍚屾墽琛岃矾寰勩傛墍浠杩涚▼鍜岀嚎绋鐨勪富瑕佸樊鍒湪浜庡畠浠槸涓嶅悓鐨勬搷浣滅郴缁熻祫婧愮鐞嗘柟寮忋傛澶栵紝绾跨▼鏈夎嚜宸辩殑鍫嗘爤鍜屽眬閮ㄥ彉閲忥紝浣嗙嚎绋嬩箣闂存病鏈夊崟鐙殑鍦板潃绌洪棿锛屼竴涓嚎绋嬫鎺夊氨绛変簬鏁翠釜杩涚▼姝绘帀锛屾墍浠ュ杩涚▼鐨绋嬪簭瑕...
绛旓細1銆佽繘绋 杩涚▼锛圥rocess锛夋槸璁$畻鏈轰腑鐨勭▼搴忓叧浜庢煇鏁版嵁闆嗗悎涓婄殑涓娆¤繍琛屾椿鍔紝鏄郴缁熻繘琛岃祫婧愬垎閰嶅拰璋冨害鐨勫熀鏈崟浣嶃傚湪鏃╂湡闈㈠悜杩涚▼璁捐鐨勮绠楁満缁撴瀯涓紝杩涚▼鏄绋嬪簭鐨勫熀鏈墽琛屽疄浣撱2銆绾跨▼ 绾跨▼锛堣嫳璇細thread锛夋槸鎿嶄綔绯荤粺鑳藉杩涜杩愮畻璋冨害鐨勬渶灏忓崟浣嶃備竴鏉$嚎绋嬫寚鐨勬槸杩涚▼涓竴涓崟涓椤哄簭鐨勬帶鍒舵祦锛屼竴涓繘绋嬩腑...
绛旓細杩涚▼鏄叿鏈変竴瀹氱嫭绔嬪姛鑳界殑绋嬪簭鍏充簬鏌愪釜鏁版嵁闆嗗悎涓婄殑涓娆¤繍琛屾椿鍔紝杩涚▼鏄郴缁熻繘琛岃祫婧愬垎閰嶅拰璋冨害鐨勪竴涓嫭绔嬪崟浣嶃绾跨▼鏄繘绋嬬殑涓涓疄浣,鏄疌PU璋冨害鍜屽垎娲剧殑鍩烘湰鍗曚綅,瀹冩槸姣旇繘绋嬫洿灏忕殑鑳界嫭绔嬭繍琛岀殑鍩烘湰鍗曚綅锛岀嚎绋嬭嚜宸卞熀鏈笂涓嶆嫢鏈夌郴缁熻祫婧愶紝鍙嫢鏈変竴鐐瑰湪杩愯涓繀涓嶅彲灏戠殑璧勬簮(濡傜▼搴忚鏁板櫒锛屼竴缁勫瘎瀛樺櫒鍜屾爤)...
绛旓細鍙﹀锛屽湪杩涚▼杩囩▼涓渶瑕佹敞鎰忥紝蹇呴』瑕佹湁涓鏉$嚎鏉★紝鍦ㄧ▼搴忓惎鍔ㄤ箣鍚庝細榛樿寮鍚竴鏉★紝杩欒澶у绉颁箣涓轰袱绉嶏紝涓绉嶆槸涓绾跨▼锛屼竴绉嶆槸ui绾跨▼锛屼袱鑰呬箣闂存槸鏈夋槑鏄惧尯鍒傚绾跨▼鏈浠涔堟牱鐨浼樼偣涓昏鐨勪紭鐐规槸鍙互蹇熺殑鎻愰珮绋嬪簭鐨勬墽琛屾晥鐜囷紝鎻愰珮璧勬簮鐨勫埄鐢ㄧ巼涓婇潰鐨勪换鍔★紝鍦ㄦ墽琛屽畬姣曚箣鍚庯紝涓鑸氨鍙互杩涘叆鍒拌嚜鍔ㄩ攢姣佺殑鑺傚銆
绛旓細(1) 绋嬪簭鏄潤鎬佺殑浠g爜锛岃兘澶熸彁渚涙弧瓒崇敤鎴烽渶瑕佺殑鍔熻兘锛屼絾鏄彧鏈夊湪绋嬪簭鎵ц鏃舵墠鑳藉涓虹敤鎴锋彁渚涘姛鑳姐(2) 杩涚▼灏辨槸鑾峰彇绯荤粺璧勬簮鍔ㄦ佹墽琛岀▼搴忕殑涓娆¤繃绋嬨(3) 绾跨▼鏄鍦ㄨ繘绋嬬嫭绔嬪唴瀛樺尯鍩熷唴閮ㄧ嫭绔嬫墽琛岀殑娴佺▼銆
绛旓細骞跺彂涓庡苟琛屼笉鍚岋紝瀹冧滑鍦ㄤ笉鍚屾椂闂存鍐呭彂鐢熴備緥濡傦紝鎶界儫骞惰浠h〃鍚屾椂鎶戒袱鏍圭儫锛岃屽苟鍙戜唬琛ㄤ氦鏇挎娊涓ゆ牴鐑熴侸ava杩涚▼涓粯璁よ嚦灏戞湁涓绾跨▼鍜鍨冨溇鍥炴敹鍣ㄧ嚎绋嬨傚熀鏈被鍨嬫暟鎹瓨鍌ㄥ湪鏍堜腑锛屽璞″紩鐢ㄥ瓨鍌ㄥ湪鏍堜腑锛屽璞℃湰韬瓨鏀惧湪鍫嗕腑銆傛瘡涓嚎绋嬫湁鐙珛鐨勬爤鍐呭瓨锛屽叡浜爢鍐呭瓨銆傛爤鍐呭瓨瀛樺彇閫熷害蹇紝浣嗗唴瀛樿緝灏忥紝鍫嗗唴瀛樺垯鐩稿弽銆
绛旓細绾跨▼鍜岃繘绋嬬殑鍖哄埆鏄粈涔锛熺嚎绋嬪拰杩涚▼鐨鍖哄埆鏄粈涔堬紵鍦ㄨ绠楁満绉戝涓紝绾跨▼鍜岃繘绋嬫槸涓や釜闈炲父閲嶈鐨勬蹇碉紝瀹冧滑鏄搷浣滅郴缁熶腑鐨勫熀鏈粍浠躲傝櫧鐒跺湪鏌愪簺鎯呭喌涓嬪畠浠彲鑳界浉浼硷紝浣嗗畠浠湪寰堝鏂归潰鏈夌潃寰堝ぇ鐨勪笉鍚屻傚湪鏈枃涓紝鎴戜滑灏嗚璁虹嚎绋嬪拰杩涚▼涔嬮棿鐨勪富瑕佸尯鍒傝繘绋嬫槸璧勬簮鐨勫垎閰嶅拰璋冨害鐨勫熀鏈崟浣嶏紝瀹冧唬琛ㄤ簡涓涓鍦ㄨ繍琛...
绛旓細鍐呭瓨鍒嗛厤锛氬悓涓杩涚▼鐨勭嚎绋鍏变韩鏈繘绋嬬殑鍦板潃绌洪棿鍜岃祫婧愶紝鑰岃繘绋嬩箣闂寸殑鍦板潃绌洪棿鍜岃祫婧愭槸鐩镐簰鐙珛鐨 褰卞搷鍏崇郴锛氫竴涓繘绋嬪穿婧冨悗锛屽湪淇濇姢妯″紡涓嬩笉浼氬鍏朵粬杩涚▼浜х敓褰卞搷锛屼絾鏄竴涓嚎绋嬪穿婧冩暣涓繘绋嬮兘姝绘帀銆傛墍浠ュ杩涚▼瑕佹瘮澶氱嚎绋嬪仴澹傛墽琛岃繃绋嬶細姣忎釜鐙珛鐨勮繘绋嬫湁绋嬪簭杩愯鐨勫叆鍙c侀『搴忔墽琛屽簭鍒楀拰绋嬪簭鍑哄彛銆備絾鏄嚎绋嬩笉...
绛旓細杩涚▼鏄璧勬簮鍒嗛厤鐨勬渶灏忓崟浣嶏紝绾跨▼搴旇鏄疌PU璋冨害鐨勬渶灏忓崟浣嶃傝祫婧愬垎閰嶆槸鍚屽煙鐗╃涓轰簡淇濇寔鑷繁鐨勭敓瀛樺拰鍑忓皯绉嶉棿绔炰簤娑堣楋紝閫氳繃鑷劧绔炰簤褰㈡垚涓嶅悓鐗╃鍦ㄩ夋嫨鍒╃敤椋熺墿璧勬簮鐨勫ぇ灏忓拰鍒嗗竷浣嶇疆绛夋柟闈㈢殑宸紓銆傚湪璧勯噾鐨勫垎閰嶄腑锛屽簲璇ュ垎閰嶅簲璇ラ伒寰殑鍩烘湰鍘熷垯锛氭牴鎹悇鍗曚綅銆佸悇椤圭洰瀵规暣涓垬鐣ョ殑閲嶈鎬ф潵璁剧疆璧勯噾鍒嗛厤鐨勪紭鍏堟潈锛...