多线程一定比单线程效率更高吗 多线程真的比单线程执行效率高吗

\u591a\u7ebf\u7a0b\u548c\u5355\u7ebf\u7a0b\u6709\u4ec0\u4e48\u672c\u8d28\u533a\u522b

\u591a\u7ebf\u7a0b\u548c\u5355\u7ebf\u7a0b\u672c\u8d28\u533a\u522b\u662f\uff1a
\uff081\uff09\u591a\u7ebf\u7a0b\u7684\u4ea7\u751f\u5e76\u4e0d\u662f\u56e0\u4e3a\u53d1\u660e\u4e86\u591a\u6838CPU\u751a\u81f3\u73b0\u5728\u6709\u591a\u4e2aCPU+\u591a\u6838\u7684\u786c\u4ef6\uff0c\u4e5f\u4e0d\u662f\u56e0\u4e3a\u591a\u7ebf\u7a0bCPU\u8fd0\u884c\u6548\u7387\u6bd4\u5355\u7ebf\u7a0b\u9ad8\u3002\u5355\u4eceCPU\u7684\u8fd0\u884c\u6548\u7387\u4e0a\u8003\u8651\uff0c\u5355\u4efb\u52a1\u8fdb\u7a0b\u53ca\u5355\u7ebf\u7a0b\u6548\u7387\u662f\u6700\u9ad8\u7684\uff0c\u56e0\u4e3aCPU\u6ca1\u6709\u4efb\u4f55\u8fdb\u7a0b\u53ca\u7ebf\u7a0b\u7684\u5207\u6362\u5f00\u9500\uff0c
\uff082\uff09\u5b9e\u9645\u4e0a\uff0c\u591a\u7ebf\u7a0b\u7684\u51fa\u73b0\u4e3b\u8981\u4e3a\u4e86\u89e3\u51b3IO\u8bbe\u5907\u7684\u8bfb\u5199\u901f\u5ea6\u5f80\u5f80\u6bd4CPU\u7684\u5904\u7406\u901f\u5ea6\u6162\u9020\u6210\u7684\u5355\u7ebf\u7a0b\u7a0b\u5e8f\u8fd0\u884c\u963b\u585e\u95ee\u9898\uff0c\u4e00\u4e2a\u6781\u7aef\u7684\u4f8b\u5b50\u5c31\u662f\u5982\u679c\u4f60\u9700\u8981\u7528\u6237\u5728\u952e\u76d8\u4e0a\u8f93\u5165\u4e00\u4e2a\u6570\u636e\uff0c\u5f53\u7528\u6237\u6ca1\u6709\u8f93\u5165\u524d\uff0c\u5355\u7ebf\u7a0b\u7a0b\u5e8f\u5c31\u963b\u585e\u4e86\uff0c\u591a\u7ebf\u7a0b\u7a0b\u5e8f\u5c31\u53ef\u4ee5\u653e\u4e2a\u97f3\u4e50\u6216\u7ee7\u7eed\u5e72\u4e00\u4e9b\u7a0b\u5e8f\u4e2d\u9664\u4e86\u952e\u76d8\u8f93\u5165\u5916\u7684\u5de5\u4f5c\uff0c\u56e0\u6b64\uff0c\u591a\u7ebf\u7a0b\u80fd\u63d0\u9ad8\u56e0\u7a0b\u5e8f\u7531\u4e8e\u7b49\u5f85\u67d0\u4e2a\u8d44\u6e90\u963b\u585e\u65f6\u5176\u4ed6\u8d44\u6e90\u7684\u5229\u7528\u7387\uff08\u662f\u5229\u7528\u7387\u4e0d\u662f\u6548\u7387\uff09\u3002
\uff083\uff09\u56e0\u6b64\u591a\u7ebf\u7a0b\u4e0e\u5355\u7ebf\u7a0b\u7684\u6700\u5927\u533a\u522b\uff0c\u591a\u7ebf\u7a0b\u7a0b\u5e8f\u80fd\u5728\u7b49\u5f85\u67d0\u4e2aIO\u64cd\u4f5c\u65f6\uff0c\u7ee7\u7eed\u5b8c\u6210\u975e\u8fd9\u4e2aIO\u7684\u5176\u4ed6\u5de5\u4f5c\uff0c\u6709\u5229\u4e8e\u63d0\u9ad8\u5b8c\u6210\u6574\u4e2a\u4efb\u52a1\u7684\u6548\u679c\u548c\u901f\u5ea6\u3002\u6b64\u5916\uff0c\u591a\u7ebf\u7a0b\u7a0b\u5e8f\u4e0e\u5355\u7ebf\u7a0b\u7a0b\u5e8f\u5bf9\u7a0b\u5e8f\u8bbe\u8ba1\u4e5f\u6709\u4e0d\u540c\u7684\u6d41\u7a0b\u548c\u7ed3\u6784\uff0c\u591a\u7ebf\u7a0b\u9700\u8981\u8003\u8651\u5bf9\u9759\u6001\u53d8\u91cf\u7b49\u8d44\u6e90\u7684\u64cd\u4f5c\u4e92\u9501\u53ca\u7a0b\u5e8f\u6267\u884c\u7684\u540c\u6b65\u95ee\u9898\u3002

\u770b\u573a\u666f\uff1b
\u6548\u7387\u7684\u74f6\u9888\u4e0d\u5728\u4ee3\u7801\u7684\u65f6\u5019\uff0c\u6bd4\u5982\u7528\u7684\u6700\u591a\u7684io\u64cd\u4f5c\uff0c
\u4e0b\u8f7d\u5668\uff0c\u4e0b\u8f7d\u670d\u52a1\u5668\u6bcf\u4e2a\u63a5\u53e3\u5c31\u7ed9\u4f60500k\u7684\u901f\u5ea6\uff0c\u90a3\u591a\u7ebf\u7a0b\u76f8\u5f53\u4e8e500*n\uff0c\u672c\u5730\u7f51\u7edc\u6700\u59272m\u6bcf\u79d2\uff0c\u53ef\u4ee5\u5f003~5\u4e2a\u7ebf\u7a0b\u81ea\u7136\u5feb\uff1b
\u590d\u5236\u5668\uff0cwindows\u64cd\u4f5c\u7cfb\u7edf\u590d\u5236\u6587\u4ef6\u5f88\u6162\uff0c\u56e0\u4e3a\u8d1f\u8d23\u590d\u5236\u7684api\u9632\u6b62\u7cfb\u7edf\u5361\u6b7b\u6bcf\u4e2a\u7ebf\u7a0b\u5c31\u7ed9\u4f60\u90a3\u70b9\u901f\u5ea6\uff0c\u5982\u679c\u7528java\u5199\u4e2a\u591a\u7ebf\u7a0bio\u6d41\u590d\u5236\uff0c\u901f\u5ea6\u5feb8\u500d\u5de6\u53f3\uff1b
\u8fd9\u6837\u7684\u573a\u5408\u6709\u4e2a\u7279\u70b9\uff0c\u901f\u5ea6\u6216\u8005\u8bf4\u6548\u7387\u7684\u5173\u952e\u4e0d\u662fjava\u7684\u5904\u7406\u80fd\u529b\uff0c\u800c\u662f\u63a5\u53e3\u9650\u5236\u6210\u4e86\u74f6\u9888\uff1b

\u4e3e\u4e2a\u53cd\u4f8b\uff0c\u5982\u679c\u5bf9\u4e00\u4e2a\u96c6\u5408\u8fdb\u884c\u904d\u5386\uff0c\u6253\u5370value\uff0c\u4f7f\u7528\u591a\u7ebf\u7a0b\u660e\u663e\u6bd4\u5355\u7ebf\u7a0b\u6548\u7387\u4f4e\uff1b\u56e0\u4e3a\u65f6\u95f4\u8fc7\u591a\u7684\u6d88\u8017\u5728\u4e86\u521b\u5efa\u7ebf\u7a0b\uff0c\u9500\u6bc1\u7ebf\u7a0b\u4e0a\uff0c\u6267\u884c\u7684\u6709\u7528\u4ee3\u7801\u548c\u5355\u7ebf\u7a0b\u6ca1\u533a\u522b\uff0c\u6548\u7387\u4e0d\u5982\u5355\u7ebf\u7a0b\uff1b

这个问题问的比较宽泛,如果说是否一定,答案是否定的,我大致说一下情况。另外目前最佳答案说的多进程不是多线程。

  1. 多线程并不一定快,尤其是在单核心或者CPU负荷较高的情况下,如果是纯粹计算,没有延时的操作,这是线程切换是需要时间的,不如单线程快。还有如果多线程设计不够好,就可能有访问冲突,加锁死锁等,这时候也肯定更慢。

  2. 计算机大多数情况下都是有延迟的操作,这个延迟一般人感觉不出,比如等待网络返回,访问磁盘IO,等待用户操作交互等,这时候使用多线程,明显提高效率。

总结:大多数情况下多线程更好,部分时候可能更差



看你做什么咯,若是就开一个软件,那都一样,要是开七八个软件,当然是多线程快了!

  • 鍗曠嚎绋鍜澶氱嚎绋鐨勪紭缂虹偣鏄粈涔
    绛旓細鍗曠嚎绋灏辨槸杩涚▼鍙湁涓涓嚎绋 澶氱嚎绋灏辨槸杩涚▼鏈夊涓嚎绋 澶氱嚎绋嬪鐞嗙殑浼樼偣 鍚屾搴旂敤绋嬪簭鐨勫紑鍙戞瘮杈冨鏄擄紝浣嗙敱浜庨渶瑕佸湪涓婁竴涓换鍔″畬鎴愬悗鎵嶈兘寮濮嬫柊鐨勪换鍔★紝鎵浠ュ叾鏁堢巼閫氬父姣斿绾跨▼搴旂敤绋嬪簭浣庛傚鏋滃畬鎴愬悓姝ヤ换鍔℃墍鐢ㄧ殑鏃堕棿姣旈璁℃椂闂撮暱锛屽簲鐢ㄧ▼搴忓彲鑳戒細涓嶅搷搴斻傚绾跨▼澶勭悊鍙互鍚屾椂杩愯澶氫釜杩囩▼銆備緥濡傦紝鏂囧瓧澶勭悊鍣...
  • nodejs澶氱嚎绋嬫瘮鍗曠嚎绋蹇灏
    绛旓細10%鍒30%銆侼ode.js澶氱嚎绋嬫瘮鍗曠嚎绋蹇10%鍒30%鐨勫師鍥犳槸澶氱嚎绋嬪彲浠ユ洿濂藉湴鍒╃敤绯荤粺璧勬簮锛屾彁楂樼▼搴忕殑杩愯鎬ц兘锛屽湪澶勭悊骞跺彂浠诲姟鏃讹紝澶氱嚎绋嬪彲浠ュ悓鏃跺鐞嗗涓换鍔★紝鍑忓皯浠诲姟闂寸殑绛夊緟鏃堕棿锛屾彁楂樼▼搴忕殑杩愯鏁堢巼銆傛澶栵紝澶氱嚎绋嬭繕鍙互灏嗕换鍔″垎閰嶇粰澶氫釜CPU鏍稿績杩涜澶勭悊锛岃繘涓姝ュ姞蹇▼搴忕殑杩愯閫熷害銆
  • Java 澶氱嚎绋鍜鍗曠嚎绋嬫晥鐜姣旇緝,鏈濂芥槸鑳戒笂浠g爜,鎴戜娇鐢ㄤ簡澶氱嚎绋嬪彂鐜拌楁椂鏇...
    绛旓細鍗绾跨▼姣斿绾跨▼鏇蹇備綘鐨勬祴璇曚唬鐮佸彧鏄敤浜咰PU璧勬簮銆傚洜涓哄绾跨▼闇瑕佸鐞嗙嚎绋嬬殑寮閿锛屽紑閿澶氫簡鑷劧娌℃湁鍗曠嚎绋嬪揩銆傚绾跨▼鏄负浜嗘洿鍏呭垎鐨勫埄鐢ㄨ绠楁満鐨勮祫婧愩傛瘮濡傜綉缁,IO,CPU...濡傛灉浣犲湪for寰幆閲屽姞鍏ヤ竴涓鐩樺啓鍏ユ搷浣滐紝澶氱嚎绋嬪氨浼姣斿崟绾跨▼蹇簡
  • 鍗曠嚎绋鍜澶氱嚎绋澶勭悊闂鍗曠嚎绋嬪拰澶氱嚎绋嬬殑鍖哄埆
    绛旓細3銆澶氱嚎绋鐨勫ソ澶勶細鍙互鎻愰珮CPU鐨勫埄鐢ㄧ巼銆4銆佸湪澶氱嚎绋嬬▼搴忎腑锛屼竴涓嚎绋嬪繀椤荤瓑寰呯殑鏃跺欙紝CPU鍙互杩愯鍏跺畠鐨勭嚎绋嬭屼笉鏄瓑寰咃紝杩欐牱灏卞ぇ澶ф彁楂樹簡绋嬪簭鐨鏁堢巼銆5銆 澶氱嚎绋嬩笌鍗曠嚎绋鐨勫尯鍒敓娲讳妇渚嬩綘鏃╀笂涓婄彮锛屾瑕佹墦鍗$殑鏃跺欙紝鎵嬫満鍝嶄簡銆6銆佷綘濡傛灉鍏堟帴浜嗙數璇濓紝绛夋帴瀹屼簡锛屽湪鎵撳崱锛屽氨鏄崟绾跨▼銆7銆佸鏋滀綘涓鎵...
  • cpu绾跨▼瓒婂瓒婂ソ鍚
    绛旓細CPU绾跨▼鏁板綋鐒惰秺澶氳秺濂藉暒銆傜嚎绋嬫暟瓒婂锛岃鏄嶤PU鑳藉悓鏃惰繍琛岀殑绋嬪簭灏辫秺澶氾紝澶勭悊閫熷害鐩稿灏辫秺蹇
  • 鍗曠嚎绋涓澶氱嚎绋鐨勫尯鍒槸浠涔?
    绛旓細澶氱嚎绋:澶氱嚎绋嬫槸鎸囩▼搴忎腑鍖呭惈澶氫釜鎵ц娴侊紝鍗冲湪涓涓▼搴忎腑鍙互鍚屾椂杩愯澶氫釜涓嶅悓鐨勭嚎绋嬫潵鎵ц涓嶅悓鐨勪换鍔★紝涔熷氨鏄鍏佽鍗曚釜绋嬪簭鍒涘缓澶氫釜骞惰鎵ц銆鍗曠嚎绋:绾跨▼鏄▼搴忎腑鐨勪竴涓墽琛屾祦锛屾瘡涓嚎绋嬮兘鏈夎嚜宸辩殑涓撴湁瀵勫瓨鍣(鏍堟寚閽堛佺▼搴忚鏁板櫒绛)锛屼絾浠g爜鍖烘槸鍏变韩鐨勶紝鍗充笉鍚岀殑绾跨▼鍙互鎵ц鍚屾牱鐨勫嚱鏁般傚绾跨▼涔熸槸...
  • CPU鍗曠嚎绋鍜屽弻绾跨▼鏄粈涔堟剰鎬?
    绛旓細鍗曠嚎绋鍦ㄧ▼搴忔墽琛屾椂锛屾墍璧扮殑绋嬪簭璺緞鎸夌収杩炵画椤哄簭鎺掍笅鏉ワ紝鍓嶉潰鐨勫繀椤诲鐞嗗ソ锛屽悗闈㈢殑鎵嶄細鎵ц銆傚崟绾跨▼澶勭悊鐨勪紭鐐癸細鍚屾搴旂敤绋嬪簭鐨勫紑鍙戞瘮杈冨鏄擄紝浣嗙敱浜庨渶瑕佸湪涓婁竴涓换鍔″畬鎴愬悗鎵嶈兘寮濮嬫柊鐨勪换鍔★紝鎵浠ュ叾鏁堢巼閫氬父姣澶氱嚎绋搴旂敤绋嬪簭浣庛傚鏋滃畬鎴愬悓姝ヤ换鍔℃墍鐢ㄧ殑鏃堕棿姣旈璁℃椂闂撮暱锛屽簲鐢ㄧ▼搴忓彲鑳戒細涓嶅搷搴斻傚绾跨▼澶勭悊...
  • 鍗曠嚎绋鍜澶氱嚎绋娴嬮熷摢涓湡瀹
    绛旓細澶氱嚎绋銆傚绾跨▼姣旇緝鍑嗭紝鍙互鍗犵敤鏈澶х殑甯﹀锛屾祴璇曞嚭鏉ユ瘮杈冨噯銆傚绾跨▼閫傜敤浜庡鏉備换鍔★紝骞跺彂浠诲姟锛屽線寰鍝嶅簲闇瑕涓瀹鐨勬椂闂达紝杩欐椂鍊欓氳繃璋冪敤澶氫釜绾跨▼锛屽悓鏃跺鐞嗕竴浜涗换鍔′粠鑰屾彁楂橀熷害銆
  • 鍗曠嚎绋鏄惁姣澶氱嚎绋杩愯閫熷害蹇,鍘熷洜鏄粈涔??鍥炵瓟婊℃剰,鍐嶅姞30鍒哶鐧惧害鐭...
    绛旓細杩欎釜涔熻鐪嬩粬鐨勪富棰戞槸澶氶珮浜.姣斿鍗曟牳CPU3.06灏辨瘮鍙屾牳2.6鐨勪富棰戣楂,浣嗘槸鍗曠嚎绋鏄繍琛屼竴涓▼搴忔垨灏戜釜绋嬪簭鑳芥樉绀哄嚭鏉ヤ粬鐨勯熷害,杩愯涓滆タ澶氫簡鐨勮瘽灏变細琚澶氱嚎绋缁欐瘮涓嬪幓浜.
  • 鍗曠嚎绋鍜澶氱嚎绋鐨勫尯鍒 鍗曠嚎绋嬫槸浠涔堟剰鎬
    绛旓細涔熷氨鏄鍏佽鍗曚釜绋嬪簭鍒涘缓澶氫釜骞惰鎵ц鐨勭嚎绋嬫潵瀹屾垚鍚勮嚜鐨勪换鍔°澶氱嚎绋鐨勫ソ澶勶細鍙互鎻愰珮CPU鐨勫埄鐢ㄧ巼銆傚湪澶氱嚎绋嬬▼搴忎腑锛屼竴涓嚎绋嬪繀椤荤瓑寰呯殑鏃跺欙紝CPU鍙互杩愯鍏跺畠鐨勭嚎绋嬭屼笉鏄瓑寰咃紝杩欐牱灏卞ぇ澶ф彁楂樹簡绋嬪簭鐨鏁堢巼銆傚绾跨▼涓鍗曠嚎绋鐨勫尯鍒 鐢熸椿涓句緥 浣犳棭涓婁笂鐝紝姝h鎵撳崱鐨勬椂鍊欙紝鎵嬫満鍝嶄簡銆備綘濡傛灉鍏堟帴浜嗙數璇濓紝...
  • 扩展阅读:为什么不建议用多线程 ... 单线程的人是啥意思 ... cpu几核几线程最好 ... 单线程和多线程哪个好 ... 多进程 多线程 效率 ... 办公多线程还是单线程 ... 什么时候单线程效率高 ... 多线程的优点和缺点 ... redis单线程为什么效率高 ...

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