多线程真的比单线程执行效率高吗 多线程一定具有比单线程更高的并发性吗?为什么?

java\u7684\u591a\u7ebf\u7a0b\u662f\u4ea4\u66ff\u5360\u7528CPU\uff0c\u4e0d\u662f\u771f\u6b63\u7684\u5e76\u884c\u8fd9\u4e2a\u548c\u5355\u7ebf\u7a0b\u4e0d\u662f\u4e00\u6837\u7684\u5417\uff1f\u4e3a\u4ec0\u4e48\u4f1a\u6548\u7387\u4f1a\u66f4\u9ad8\uff1f

\u6bd4\u5982\u67d0\u7ebf\u7a0b\u9700\u8981\u5ef6\u65f6\u7b49\u5f85\u67d0\u64cd\u4f5c\u5b8c\u6210,\u8fd9\u65f6\u5c31\u53ef\u4ee5\u7528\u7ebf\u7a0b\u8c03\u5ea6\u6267\u884c\u5176\u4ed6\u7b49\u5f85\u6267\u884c\u7684\u7ebf\u7a0b,\u8fd9\u6837\u66f4\u5b8c\u5168\u5730\u5229\u7528\u4e86cpu\u7684\u6027\u80fd,\u56e0\u6b64\u6548\u7387\u9ad8

\u5355\u7ebf\u7a0b\u7684\u4e5f\u5c31\u662f\u7a0b\u5e8f\u6267\u884c\u65f6\uff0c\u6240\u8dd1\u7684\u7a0b\u5e8f\u8def\u5f84\uff08\u5904\u7406\u7684\u4e1c\u897f\uff09\u662f\u8fde\u7eed\u987a\u5e8f\u4e0b\u6765\u7684\uff0c\u5fc5\u987b\u524d\u9762\u7684\u5904\u7406\u597d\uff0c\u540e\u9762\u7684\u5f69\u7ed8\u6267\u884c\u5230\u3002
\u591a\u7ebf\u7a0b\u561b\uff0c\u4e3e\u4e2a\u4f8b\u5b50\u4e5f\u5c31\u662f\u8bf4\u7a0b\u5e8f\u53ef\u4ee5\u540c\u65f6\u6267\u884c2\u4e2a\u4ee5\u4e0a\u76f8\u540c\u7c7b\u4f3c\u7684\u64cd\u4f5c\uff0c\u6bd4\u5982\u4e00\u4e9b\u641c\u7d22\u4ee3\u7406\u6216\u8005\u7fa4\u53d1email\u7684\u591a\u7ebf\u7a0b\u8f6f\u4ef6\uff0c\u7531\u4e8e\u64cd\u4f5c\u4e00\u6b21\u9700\u8981\u7f51\u7edc\u7684\u8fd4\u56de\u4fe1\u606f \u82b1\u7684\u65f6\u95f4\u6bd4\u8f83\u957f\uff0c\u800c\u5bf9cpu\u6765\u8bf4\u5374\u662f\u7a7a\u95f2\u7684\uff0c\u5982\u679c\u662f\u4e00\u4e2a\u4e00\u4e2a\u987a\u5e8f\u6267\u884c\uff0c\u90a3\u4e48\u641c\u7d22\u51e0\u5343\u4e2aIP\u5c31\u4f1a\u82b1\u4e0a\u597d\u4e45\u597d\u4e45\u3002 \u800c\u5982\u679c\u7528\u591a\u7ebf\u7a0b\u5c31\u53ef\u4ee5\u5728\u7b49\u5f85\u671f\u95f4 \u52a0\u5165\u5176\u4ed6\u7684\u641c\u7d22\uff0c\u7136\u540e\u7b49\u5f85\uff0c\u8fd9\u6837\u53ef\u4ee5\u63d0\u9ad8\u6548\u7387\u3002\u4e0d\u8fc7\u591a\u7ebf\u7a0b\u548c\u591a\u8fdb\u7a0b\u516c\u7528\u4e00\u4e9b\u8d44\u6e90\u65f6\u8981\u8003\u8651\u7684\u95ee\u9898\u597d\u50cf\u4e5f\u662f\u4e00\u6837\u7684\uff0c\uff0c\u5bf9\u4e8e\u4e00\u4e9b\u516c\u5171\u8d44\u6e90\u6216\u8005\u516c\u5171\u53d8\u91cf\u7684\u8bbf\u95ee\u548c\u4fee\u6539\u65f6\u8981\u6ce8\u610f\u7279\u522b\u7684\uff0c\u9700\u8981\u4e00\u4e9b\u9501\u5b9a\u4ec0\u4e48\u7684\uff0c\u8fd8\u6709\u987a\u5e8f\u95ee\u9898\u7684\u8003\u8651\u3002
\u591a\u7ebf\u7a0b\u7f16\u7a0b\u7684\u76ee\u7684,\u5c31\u662f"\u6700\u5927\u9650\u5ea6\u5730\u5229\u7528CPU\u8d44\u6e90",\u5f53\u67d0\u4e00\u7ebf\u7a0b\u7684\u5904\u7406\u4e0d\u9700\u8981\u5360\u7528CPU\u800c\u53ea\u548cI/O,OEMBIOS\u7b49\u8d44\u6e90\u6253\u4ea4\u9053\u65f6,\u8ba9\u9700\u8981\u5360\u7528CPU\u8d44\u6e90\u7684\u5176\u5b83\u7ebf\u7a0b\u6709\u673a\u4f1a\u83b7\u5f97CPU\u8d44\u6e90\u3002\u6bcf\u4e2a\u7a0b\u5e8f\u6267\u884c\u65f6\u90fd\u4f1a\u4ea7\u751f\u4e00\u4e2a\u8fdb\u7a0b\uff0c\u800c\u6bcf\u4e00\u4e2a\u8fdb\u7a0b\u81f3\u5c11\u8981\u6709\u4e00\u4e2a\u4e3b\u7ebf\u7a0b\u3002\u8fd9\u4e2a\u7ebf\u7a0b\u5176\u5b9e\u662f\u8fdb\u7a0b\u6267\u884c\u7684\u4e00\u6761\u7ebf\u7d22\uff0c\u9664\u4e86\u4e3b\u7ebf\u7a0b\u5916\u4f60\u8fd8\u53ef\u4ee5\u7ed9\u8fdb\u7a0b\u589e\u52a0\u5176\u5b83\u7684\u7ebf\u7a0b\uff0c\u4e5f\u5373\u589e\u52a0\u5176\u5b83\u7684\u6267\u884c\u7ebf\u7d22\uff0c\u7531\u6b64\u5728\u67d0\u79cd\u7a0b\u5ea6\u4e0a\u53ef\u4ee5\u770b\u6210\u662f\u7ed9\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u589e\u52a0\u4e86\u591a\u4efb\u52a1\u529f\u80fd\u3002\u5f53\u7a0b\u5e8f\u8fd0\u884c\u540e\uff0c\u60a8\u53ef\u4ee5\u6839\u636e\u5404\u79cd\u6761\u4ef6\u6302\u8d77\u6216\u8fd0\u884c\u8fd9\u4e9b\u7ebf\u7a0b\uff0c\u5c24\u5176\u5728\u591aCPU\u7684\u73af\u5883\u4e2d\uff0c\u8fd9\u4e9b\u7ebf\u7a0b\u662f\u5e76\u53d1\u8fd0\u884c\u7684\u3002\u591a\u7ebf\u7a0b\u5c31\u662f\u5728\u4e00\u4e2a\u8fdb\u7a0b\u5185\u6709\u591a\u4e2a\u7ebf\u7a0b\u3002\u4ece\u800c\u4f7f\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u6709\u4e86\u591a\u4efb\u52a1\u7684\u529f\u80fd\u3002\u591a\u8fdb\u7a0b\u6280\u672f\u4e5f\u53ef\u4ee5\u5b9e\u73b0\u8fd9\u4e00\u70b9\uff0c\u4f46\u662f\u521b\u5efa\u8fdb\u7a0b\u7684\u9ad8\u6d88\u8017\uff08\u6bcf\u4e2a\u8fdb\u7a0b\u90fd\u6709\u72ec\u7acb\u7684\u6570\u636e\u548c\u4ee3\u7801\u7a7a\u95f4\uff09\uff0c\u8fdb\u7a0b\u4e4b\u95f4\u901a\u4fe1\u7684\u4e0d\u65b9\u4fbf\uff08\u6d88\u606f\u673a\u5236\uff09\uff0c\u8fdb\u7a0b\u5207\u6362\u7684\u65f6\u95f4\u592a\u957f\uff0c\u8fd9\u4e9b\u5bfc\u81f4\u4e86\u591a\u7ebf\u7a0b\u7684\u63d0\u51fa\uff0c\u5bf9\u4e8e\u5355CPU\u6765\u8bf4\uff08\u6ca1\u6709\u5f00\u542f\u8d85\u7ebf\u7a0b\uff09\uff0c\u5728\u540c\u4e00\u65f6\u95f4\u53ea\u80fd\u6267\u884c\u4e00\u4e2a\u7ebf\u7a0b\uff0c\u6240\u4ee5\u5982\u679c\u60f3\u5b9e\u73b0\u591a\u4efb\u52a1\uff0c\u90a3\u4e48\u5c31\u53ea\u80fd\u6bcf\u4e2a\u8fdb\u7a0b\u6216\u7ebf\u7a0b\u83b7\u5f97\u4e00\u4e2a\u65f6\u95f4\u7247\uff0c\u5728\u67d0\u4e2a\u65f6\u95f4\u7247\u5185\uff0c\u53ea\u80fd\u4e00\u4e2a\u7ebf\u7a0b\u6267\u884c\uff0c\u7136\u540e\u6309\u7167\u67d0\u79cd\u7b56\u7565\u6362\u5176\u4ed6\u7ebf\u7a0b\u6267\u884c\u3002\u7531\u4e8e\u65f6\u95f4\u7247\u5f88\u77ed\uff0c\u8fd9\u6837\u7ed9\u7528\u6237\u7684\u611f\u89c9\u662f\u540c\u65f6\u6709\u597d\u591a\u7ebf\u7a0b\u5728\u6267\u884c\u3002\u4f46\u662f\u7ebf\u7a0b\u5207\u6362\u662f\u6709\u4ee3\u4ef7\u7684\uff0c\u56e0\u6b64\u5982\u679c\u91c7\u7528\u591a\u8fdb\u7a0b\uff0c\u90a3\u4e48\u5c31\u9700\u8981\u5c06\u7ebf\u7a0b\u6240\u96b6\u5c5e\u7684\u8be5\u8fdb\u7a0b\u6240\u9700\u8981\u7684\u5185\u5b58\u8fdb\u884c\u5207\u6362\uff0c\u8fd9\u65f6\u95f4\u4ee3\u4ef7\u662f\u5f88\u591a\u7684\u3002\u800c\u7ebf\u7a0b\u5207\u6362\u4ee3\u4ef7\u5c31\u5f88\u5c11\uff0c\u7ebf\u7a0b\u662f\u53ef\u4ee5\u5171\u4eab\u5185\u5b58\u7684\u3002\u6240\u4ee5\u91c7\u7528\u591a\u7ebf\u7a0b\u5728\u5207\u6362\u4e0a\u82b1\u8d39\u7684\u6bd4\u591a\u8fdb\u7a0b\u5c11\u5f97\u591a\u3002\u4f46\u662f\uff0c\u7ebf\u7a0b\u5207\u6362\u8fd8\u662f\u9700\u8981\u65f6\u95f4\u6d88\u8017\u7684\uff0c\u6240\u4ee5\u91c7\u7528\u4e00\u4e2a\u62e5\u6709\u4e24\u4e2a\u7ebf\u7a0b\u7684\u8fdb\u7a0b\u6267\u884c\u6240\u9700\u8981\u7684\u65f6\u95f4\u6bd4\u4e00\u4e2a\u7ebf\u7a0b\u7684\u8fdb\u7a0b\u6267\u884c\u4e24\u6b21\u6240\u9700\u8981\u7684\u65f6\u95f4\u8981\u591a\u4e00\u4e9b\u3002\u5373\u91c7\u7528\u591a\u7ebf\u7a0b\u4e0d\u4f1a\u63d0\u9ad8\u7a0b\u5e8f\u7684\u6267\u884c\u901f\u5ea6\uff0c\u53cd\u800c\u4f1a\u964d\u4f4e\u901f\u5ea6\uff0c\u4f46\u662f\u5bf9\u4e8e\u7528\u6237\u6765\u8bf4\uff0c\u53ef\u4ee5\u51cf\u5c11\u7528\u6237\u7684\u54cd\u5e94\u65f6\u95f4\u3002\u4e0a\u8ff0\u7ed3\u679c\u53ea\u662f\u9488\u5bf9\u5355CPU\uff0c\u5982\u679c\u5bf9\u4e8e\u591aCPU\u6216\u8005CPU\u91c7\u7528\u8d85\u7ebf\u7a0b\u6280\u672f\u7684\u8bdd\uff0c\u91c7\u7528\u591a\u7ebf\u7a0b\u6280\u672f\u8fd8\u662f\u4f1a\u63d0\u9ad8\u7a0b\u5e8f\u7684\u6267\u884c\u901f\u5ea6\u7684\u3002\u56e0\u4e3a\u5355\u7ebf\u7a0b\u53ea\u4f1a\u6620\u5c04\u5230\u4e00\u4e2aCPU\u4e0a\uff0c\u800c\u591a\u7ebf\u7a0b\u4f1a\u6620\u5c04\u5230\u591a\u4e2aCPU\u4e0a\uff0c\u8d85\u7ebf\u7a0b\u6280\u672f\u672c\u8d28\u662f\u591a\u7ebf\u7a0b\u786c\u4ef6\u5316\uff0c\u6240\u4ee5\u4e5f\u4f1a\u52a0\u5feb\u7a0b\u5e8f\u7684\u6267\u884c\u901f\u5ea6\u3002

看场景;
效率的瓶颈不在代码的时候,比如用的最多的io操作,
下载器,下载服务器每个接口就给你500k的速度,那多线程相当于500*n,本地网络最大2m每秒,可以开3~5个线程自然快;
复制器,windows操作系统复制文件很慢,因为负责复制的api防止系统卡死每个线程就给你那点速度,如果用java写个多线程io流复制,速度快8倍左右;
这样的场合有个特点,速度或者说效率的关键不是java的处理能力,而是接口限制成了瓶颈;

举个反例,如果对一个集合进行遍历,打印value,使用多线程明显比单线程效率低;因为时间过多的消耗在了创建线程,销毁线程上,执行的有用代码和单线程没区别,效率不如单线程;

  • 2銆澶氱嚎绋涓瀹姣斿崟绾跨▼蹇悧?
    绛旓細澶氱嚎绋嬩竴瀹氭瘮鍗曠嚎绋嬪揩鍚楋紵 涓嶄竴瀹锛侊紒锛 鍥犱负澶氱嚎绋嬩腑绾跨▼鐨勫垱寤哄拰涓婁笅鏂囧垏鎹篃闇瑕佹秷鑰楁椂闂淬傚疄楠屽彲浠ュ彂鐜帮紝骞跺彂鎵ц绱姞鎿嶄綔涓嶈秴杩囩櫨涓囨鏃讹紝澶氱嚎绋嬮熷害浼氭瘮鍗曠嚎绋嬫墽琛岀疮鍔犳搷浣滆鎱
  • 澶氱嚎绋涓瀹姣斿崟绾跨▼鏁堢巼鏇撮珮鍚
    绛旓細鎬荤粨锛氬ぇ澶氭暟鎯呭喌涓澶氱嚎绋鏇村ソ锛岄儴鍒嗘椂鍊欏彲鑳芥洿宸
  • Python 澶氱嚎绋嬫晥鐜涓楂樺悧?
    绛旓細鍥炵瓟锛歅ython鏁堢巼鍒板簳楂樹笉楂?鍒板簳鏄笉鏄浮鑲?Python鐢变簬鏈夊叏閿佸眬鐨勫瓨鍦(鍚屼竴鏃堕棿鍙兘鏈変竴涓绾跨▼鎵ц),骞朵笉鑳藉埄鐢ㄥ鏍镐紭鍔裤傛墍浠,濡傛灉浣犵殑澶氱嚎绋杩涚▼鏄疌PU瀵嗛泦鍨嬬殑,閭e绾跨▼骞朵笉鑳藉甫鏉ユ晥鐜囦笂鐨勬彁鍗,鐩稿弽杩樺彲鑳戒細鍥犱负绾跨▼鐨勯绻佸垏鎹,瀵艰嚧鏁堢巼涓嬮檷;濡傛灉鏄疘O瀵嗛泦鍨,澶氱嚎绋嬭繘绋嬪彲浠ュ埄鐢↖O闃诲绛夊緟鏃剁殑绌洪棽鏃堕棿...
  • nodejs澶氱嚎绋嬫瘮鍗曠嚎绋蹇灏
    绛旓細10%鍒30%銆侼ode.js澶氱嚎绋嬫瘮鍗曠嚎绋嬪揩10%鍒30%鐨勫師鍥犳槸澶氱嚎绋嬪彲浠ユ洿濂藉湴鍒╃敤绯荤粺璧勬簮锛屾彁楂樼▼搴忕殑杩愯鎬ц兘锛屽湪澶勭悊骞跺彂浠诲姟鏃讹紝澶氱嚎绋嬪彲浠ュ悓鏃跺鐞嗗涓换鍔★紝鍑忓皯浠诲姟闂寸殑绛夊緟鏃堕棿锛屾彁楂樼▼搴忕殑杩愯鏁堢巼銆傛澶栵紝澶氱嚎绋嬭繕鍙互灏嗕换鍔″垎閰嶇粰澶氫釜CPU鏍稿績杩涜澶勭悊锛岃繘涓姝ュ姞蹇▼搴忕殑杩愯閫熷害銆
  • Java 澶氱嚎绋鍜鍗曠嚎绋嬫晥鐜姣旇緝,鏈濂芥槸鑳戒笂浠g爜,鎴戜娇鐢ㄤ簡澶氱嚎绋嬪彂鐜拌楁椂鏇...
    绛旓細鍗曠嚎绋嬫瘮澶氱嚎绋嬫洿蹇銆備綘鐨勬祴璇曚唬鐮佸彧鏄敤浜咰PU璧勬簮銆傚洜涓哄绾跨▼闇瑕佸鐞嗙嚎绋嬬殑寮閿锛屽紑閿澶氫簡鑷劧娌℃湁鍗曠嚎绋嬪揩銆傚绾跨▼鏄负浜嗘洿鍏呭垎鐨勫埄鐢ㄨ绠楁満鐨勮祫婧愩傛瘮濡傜綉缁,IO,CPU...濡傛灉浣犲湪for寰幆閲屽姞鍏ヤ竴涓鐩樺啓鍏ユ搷浣滐紝澶氱嚎绋嬪氨浼氭瘮鍗曠嚎绋嬪揩浜
  • 瀵逛簬澶氫釜鏂囦欢鐨勮鍙,浣跨敤澶氱嚎绋鏄惁浼姣斿崟绾跨▼鏁堢巼楂?
    绛旓細杩欐牱鐨勫満鍚堟湁涓壒鐐癸紝閫熷害鎴栬呰鏁堢巼鐨勫叧閿笉鏄痡ava鐨勫鐞嗚兘鍔涳紝鑰屾槸鎺ュ彛闄愬埗鎴愪簡鐡堕锛涗妇涓弽渚嬶紝濡傛灉瀵逛竴涓泦鍚堣繘琛岄亶鍘嗭紝鎵撳嵃value锛屼娇鐢澶氱嚎绋鏄庢樉姣斿崟绾跨▼鏁...
  • 鍗曠嚎绋鍜澶氱嚎绋鍝釜閫傚悎娓告垙鍗曠嚎绋嬪拰澶氱嚎绋嬬殑鍖哄埆
    绛旓細1銆澶氱嚎绋鍜屽崟绾跨▼鏈川鍖哄埆鏄細锛1锛夊绾跨▼鐨勪骇鐢熷苟涓嶆槸鍥犱负鍙戞槑浜嗗鏍窩PU鐢氳嚦鐜板湪鏈夊涓狢PU+澶氭牳鐨勭‖浠讹紝涔熶笉鏄洜涓哄绾跨▼CPU杩愯鏁堢巼姣斿崟绾跨▼楂銆2銆佸崟浠嶤PU鐨勮繍琛屾晥鐜涓婅冭檻锛屽崟浠诲姟杩涚▼鍙婂崟绾跨▼鏁堢巼鏄渶楂樼殑锛屽洜涓篊PU娌℃湁浠讳綍杩涚▼鍙婄嚎绋嬬殑鍒囨崲寮閿锛岋紙2锛夊疄闄呬笂锛屽绾跨▼鐨勫嚭鐜颁富瑕佷负浜嗚В鍐矷O璁惧...
  • 澶氱嚎绋嬬湡鐨勬瘮鍗曠嚎绋嬫墽琛屾晥鐜囬珮鍚
    绛旓細閫熷害蹇8鍊嶅乏鍙筹紱杩欐牱鐨勫満鍚堟湁涓壒鐐癸紝閫熷害鎴栬呰鏁堢巼鐨勫叧閿笉鏄痡ava鐨勫鐞嗚兘鍔涳紝鑰屾槸鎺ュ彛闄愬埗鎴愪簡鐡堕锛涗妇涓弽渚嬶紝濡傛灉瀵逛竴涓泦鍚堣繘琛岄亶鍘嗭紝鎵撳嵃value锛屼娇鐢澶氱嚎绋鏄庢樉姣斿崟绾跨▼鏁堢巼浣庯紱鍥犱负鏃堕棿杩囧鐨勬秷鑰楀湪浜嗗垱寤虹嚎绋嬶紝閿姣佺嚎绋嬩笂锛鎵ц鐨勬湁鐢ㄤ唬鐮佸拰鍗曠嚎绋嬫病鍖哄埆锛屾晥鐜囦笉濡傚崟绾跨▼锛
  • java澶氱嚎绋嬫晥鐜闂
    绛旓細鏈涓昏鐨勬槸锛屼竴鑸潵璇村湪澶氭牳cpu涓嬶紝澶氱嚎绋嬬殑鏁堢巼鏄姣斿崟绾跨▼鐨勯珮锛屼絾鏄繖涓珮鏄缓绔嬪湪鍒╃敤浜嗙┖闂茬殑cpu锛屽洜涓轰竴鑸潵璇碿pu浣跨敤鐜囬兘涓寰堥珮锛屼綘杩欎釜绋嬪簭鐨勮瘽锛宑pu浣跨敤宸茬粡寰堥珮浜嗭紝澶氱嚎绋嬪苟涓嶈兘璁╀綘鐨勬晥鐜囧彉楂橈紝鍙嶈屽洜涓轰笂涓嬫枃鍒囨崲瀵艰嚧鍙樹綆锛屽叧閿湪浜庣悊瑙e绾跨▼涓鑸负浠涔堜細浣挎晥鐜囧彉楂樸
  • 鍏充簬澶氱嚎绋,鏄笉鏄彲浠ユ彁楂樼▼搴鐨勮繍琛閫熷害?鏈変粈涔堝埄寮?C#鎴杍ava涓垱...
    绛旓細鎵浠 鍗曠嚎绋绋嬪簭锛屽鏋滄秹鍙婅繖浜涙參鎿嶄綔锛岄偅涔堝ぇ閮ㄥ垎鏃堕棿CPU閮藉湪绛夊緟纭洏鎿嶄綔涔嬬被锛澶氱嚎绋鎿嶄綔锛屽彲浠ヨ澶氫釜浠诲姟骞惰鎵ц锛宎浠诲姟绛夊緟纭洏鍝嶅簲鏃讹紝璁゜浠诲姟鍘荤敤cpu锛屾墍浠ワ紝澶氱嚎绋嬩笉鑳芥彁楂樺崟浠诲姟鐨勮繍琛閫熷害锛屼絾鏄彲浠ユ彁楂樺涓彲浠ュ苟鍙戠殑浠诲姟閫熷害銆備妇涓畝鍗曠殑渚嬪瓙锛岀儳寮姘寸殑绛夊緟鏃堕棿锛屼綘鍙互鍘诲噯澶囪尪鍙讹紝娲楁澂瀛愮瓑绛 ...
  • 扩展阅读:为什么不建议用多线程 ... 多线程的好处和坏处 ... cpu几核几线程最好 ... 单线程多线程画图对比 ... 为什么不建议用线程池 ... 多线程的优点和缺点 ... 办公多线程还是单线程 ... 电脑几核处理器好 ... 多线程到底是不是同时执行 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网