关于多线程,是不是可以提高程序的运行速度?有什么利弊?C#或java中创建了多线程,如何使用? JAVA多线程到底能不能加快程序运行速度?

\u662f\u4e0d\u662f\u4f7f\u7528\u591a\u7ebf\u7a0b\u53ef\u4ee5\u52a0\u5927\u7a0b\u5e8f\u7684\u8fd0\u884c\u901f\u5ea6\uff1f

\u662f\u7684\uff0c\u591a\u7ebf\u7a0b\u6280\u672f\u5c31\u662f\u53ef\u4ee5\u8ba9cpu\u540c\u65f6\u8fdb\u884c\u591a\u9879\u5de5\u4f5c\uff0c\u6240\u4ee5\u5b83\u7684\u786e\u53ef\u4ee5\u63d0\u9ad8\u7a0b\u5e8f\u7684\u8fd0\u884c\u901f\u5ea6\u3002\u3002\u8fd9\u79cd\u60c5\u51b5\u4e00\u822c\u662f\u8bf4\u7a0b\u5e8f\u6267\u884c\u4e00\u9879\u5de5\u4f5c\u65f6\uff0c\u628a\u8be5\u9879\u5de5\u4f5c\u5206\u5272\u6210\u591a\u4e2a\u90e8\u5206\uff0c\u8fd0\u7528\u591a\u7ebf\u7a0b\u6280\u672f\u540c\u65f6\u8fdb\u884c\uff0c\u90a3\u4e48\u8be5\u7a0b\u5e8f\u6267\u884c\u7684\u6548\u7387\u5c31\u5927\u5927\u589e\u52a0\u4e86\u3002\u3002\u3002

\u78c1\u76d8IO\u7684\u901f\u5ea6\u5728\u90a3\u91cc\u4e86\uff0c\u5c31\u7b97\u4f60\u518d\u591a\u7684\u7ebf\u7a0b\uff0c\u4e5f\u7ed5\u4e0d\u8fc7IO\u74f6\u9888\u3002\u4e0d\u662f\u8bf4\u591a\u7ebf\u7a0b\u4e0d\u80fd\u63d0\u9ad8\u6548\u7387\uff0c\u8fd9\u4e2a\u8981\u770b\u4f60\u9879\u76ee\u7684\u6027\u80fd\u74f6\u9888\u5728\u54ea\u91cc\u3002 IO\u5bc6\u96c6\u578b\uff0c\u6ca1\u5fc5\u8981\u591a\u7ebf\u7a0b\uff0c\u5bb9\u6613\u5f04\u5de7\u6210\u62d9\u3002\u5efa\u8baeCache\uff0c\u67d0\u4e9b\u6587\u4ef6\u7cfb\u7edf\u5728\u987a\u5e8f\u8bfb\u6216\u5199\u78c1\u76d8\u65f6\u901f\u5ea6\u76f8\u5f53\u5feb\uff0c\u5982\u679c\u6070\u597d\u6587\u4ef6\u662f\u987a\u5e8f\u5b58\u50a8\u5728\u78c1\u76d8\u4e0a\u7684\uff0c\u5efa\u8bae\u5148\u5c3d\u91cf\u8bfb\u8fdb\u5185\u5b58\uff0c\u518d\u4e00\u6b21\u6027\u5199\u51fa\u53bb\u3002\u5176\u4ed6\u4ec0\u4e48\u78c1\u76d8\u5185\u5b58\u901a\u9053\u4e4b\u7c7b\u7684\u5e95\u5c42\u6280\u672f\u5c31\u4e0d\u662fJava\u80fd\u5de6\u53f3\u7684\u4e86\u3002

首先你要知道计算机的构造,现有的计算机,CPU是非常快的,但是硬盘、打印机、网络通讯等等,相对CPU,是极其慢的,
所以 单线程程序,如果涉及这些慢操作,那么大部分时间CPU都在等待硬盘操作之类,
多线程操作,可以让多个任务并行执行,a任务等待硬盘响应时,让b任务去用cpu,所以,多线程不能提高单任务的运行速度,但是可以提高多个可以并发的任务速度。

举个简单的例子,烧开水的等待时间,你可以去准备茶叶,洗杯子等等

提高程序的运行速度? 不行 充分利用CPU还差不多 CPU内部是串行的就是CPU在某个时间段只能执行某个命令 就是说CPU本身不是多线程的去执行你的命令 只是它的速度太快 所以你就觉得它是同时在执行多个程序 有时候我们需要用到多线程去处理一些问题 没有多线程根本无法去处理一些问题 了解?

提高速度需要看你是什么应用了,如果你的应用时单线程的那么它提高不了速度,如果是像windows这样的(又可以听歌,又可以编辑文本)就能提高运行速度的,多线程不好之处在于调试困难,java中的线程是靠继承Thread类来实现。

  • 鍏充簬澶氱嚎绋,鏄笉鏄彲浠ユ彁楂樼▼搴鐨勮繍琛岄熷害?鏈変粈涔堝埄寮?C#鎴杍ava涓垱...
    绛旓細鎵浠 鍗绾跨▼绋嬪簭锛濡傛灉娑夊強杩欎簺鎱㈡搷浣滐紝閭d箞澶ч儴鍒嗘椂闂碈PU閮藉湪绛夊緟纭洏鎿嶄綔涔嬬被锛屽绾跨▼鎿嶄綔锛屽彲浠ヨ澶氫釜浠诲姟骞惰鎵ц锛宎浠诲姟绛夊緟纭洏鍝嶅簲鏃讹紝璁゜浠诲姟鍘荤敤cpu锛屾墍浠锛屽绾跨▼涓嶈兘鎻愰珮鍗曚换鍔$殑杩愯閫熷害锛屼絾鏄鍙互鎻愰珮澶氫釜鍙互骞跺彂鐨勪换鍔¢熷害銆備妇涓畝鍗曠殑渚嬪瓙锛岀儳寮姘寸殑绛夊緟鏃堕棿锛屼綘鍙互鍘诲噯澶囪尪鍙讹紝娲楁澂瀛愮瓑绛 ...
  • 鍏充簬澶氱嚎绋嬫彁楂樼▼搴鎵ц閫熺巼鐨勯棶棰
    绛旓細鍦ㄥ澶勭悊绯荤粺涓婏紝灏嗚鎵ц鐨勪换鍔″垎鍓叉垚澶氫釜鍙苟琛屾墽琛绾跨▼锛灏鍙互鎻愰珮鎵ц閫熺巼銆備絾鏄鏋滀换鍔℃湰韬笉鍙苟琛岋紝姣斿灏辨槸涓涓湁闄愮姸鎬佽嚜鍔ㄦ満鐨绋嬪簭锛岄偅灏辨病鍔炴硶鐢ㄥ埌澶氬鐞嗘満锛屼篃涓鑳芥彁楂閫熺巼銆備笂闈㈣鐨勬槸骞惰锛涓嶆槸骞跺彂銆傚崟澶勭悊鍣ㄤ笂澶氱嚎绋鍙兘骞跺彂鎵ц鑰屼笉鏄苟琛岋紝澶氱嚎绋嬪苟涓嶈兘鎻愰珮绾绠楃▼搴忕殑閫熺巼銆備絾鏄...
  • 浠涔堟槸澶氱嚎绋鎶鏈?
    绛旓細杩欐牱锛岀▼搴忓彲浠鍦ㄥ悓涓鏃堕棿澶勭悊澶氫釜璇锋眰锛屾彁楂浜嗘湇鍔″櫒鐨勫悶鍚愰噺鍜屽搷搴旈熷害銆澶氱嚎绋鎶鏈殑瀹炵幇鏂瑰紡涓昏鏈変袱绉嶏細鐢ㄦ埛绾х嚎绋嬪拰鍐呮牳绾х嚎绋嬨傜敤鎴风骇绾跨▼鐢卞簲鐢ㄧ▼搴忚嚜宸辩鐞嗭紝绾跨▼鐨勫垱寤恒佸垏鎹㈠拰閿姣侀兘鍦ㄧ敤鎴风┖闂村畬鎴锛屼笉闇瑕佸唴鏍哥殑鍙備笌銆傝繖绉嶆柟寮忕殑浼樼偣鏄垏鎹㈤熷害蹇紝寮閿灏忥紱浣嗙己鐐规槸褰撶嚎绋嬮樆濉炴椂锛屾暣涓簲鐢ㄧ▼搴忛兘浼...
  • 澶氱嚎绋嬫槸浠涔堟剰鎬濆晩?杩愯澶氫釜绋嬪簭鐨勬剰鎬濆悧?
    绛旓細鍗冲湪涓涓绋嬪簭涓彲浠ュ悓鏃惰繍琛屽涓笉鍚岀殑绾跨▼鏉ユ墽琛屼笉鍚岀殑浠诲姟锛屼篃灏辨槸璇村厑璁稿崟涓▼搴忓垱寤哄涓苟鎵ц鐨勭嚎绋嬫潵瀹屾垚鍚勮嚜鐨勪换鍔°澶氱嚎绋鐨勫ソ澶勫湪浜鍙互鎻愰珮CPU鐨勫埄鐢ㄧ巼銆傚湪澶氱嚎绋嬬殑绋嬪簭涓紝褰撲竴涓嚎绋嬪繀椤荤瓑寰呯殑鏃跺欙紝CPU鍙互杩愯鍏跺畠鐨勭嚎绋嬭涓嶆槸绛夊緟锛岃繖鏍峰氨澶уぇ鎻愰珮浜嗙▼搴忕殑鏁堢巼銆
  • 澶氱嚎绋鐨勪富瑕佺敤澶勬槸浠涔?
    绛旓細棣栧厛璇翠笅澶氱嚎绋鍑虹幇鐨勫師鍥:涓轰簡瑙e喅璐熻浇鍧囪 闂,鍏呭垎鍒╃敤CPU璧勬簮.涓轰簡鎻愰珮CPU鐨勪娇鐢ㄧ巼,閲囩敤澶氱嚎绋嬬殑鏂瑰紡鍘诲悓鏃跺畬鎴愬嚑浠朵簨鎯呰屼笉浜掔浉骞叉壈.涓轰簡澶勭悊澶ч噺鐨処O鎿嶄綔鏃舵垨澶勭悊鐨勬儏鍐甸渶瑕佽姳璐瑰ぇ閲忕殑鏃堕棿绛夌瓑,姣斿:璇诲啓鏂囦欢,瑙嗛鍥惧儚鐨勯噰闆,澶勭悊,鏄剧ず,淇濆瓨绛 澶氱嚎绋嬬殑濂藉:1.浣跨敤绾跨▼鍙互鎶婂崰鎹椂闂撮暱鐨绋嬪簭涓殑...
  • 澶氱嚎绋骞跺彂鏄粈涔堟剰鎬
    绛旓細澶氱嚎绋嬪苟鍙戝绋嬪簭寮鍙戠殑鎰忎箟 澶氱嚎绋嬪苟鍙鍙互鏈夋晥鍦板垎绂荤▼搴忕殑涓嶅悓閮ㄥ垎锛屼粠鑰屽厑璁稿悇涓儴浠跺湪骞跺彂澶勭悊涓繘琛屽崟鐙殑宸ヤ綔銆傚湪绋嬪簭鐨勬ā鍧楀寲璁捐鍜岃皟璇曚腑锛屽绾跨▼骞跺彂鍙互浣垮悇涓ā鍧楃嫭绔嬪湴杩涜鍗曞厓娴嬭瘯锛屼粠鑰岀缉鐭祴璇曟椂闂锛屾彁鍗囩▼搴鐨勮川閲忓拰鍙潬鎬с傛澶栵紝澶氱嚎绋嬪苟鍙戣繕鍙互浣垮緱绋嬪簭鐨勫紑鍙戞洿鍔犻珮鏁堝拰渚挎嵎銆傚湪澶氱嚎绋嬪苟鍙...
  • JAVA澶氱嚎绋鍒板簳鑳戒笉鑳鍔犲揩绋嬪簭杩愯閫熷害?
    绛旓細纾佺洏IO鐨勯熷害鍦ㄩ偅閲屼簡锛屽氨绠椾綘鍐嶅鐨勭嚎绋嬶紝涔熺粫涓嶈繃IO鐡堕銆涓嶆槸璇村绾跨▼涓鑳芥彁楂鏁堢巼锛岃繖涓鐪嬩綘椤圭洰鐨勬ц兘鐡堕鍦ㄥ摢閲屻 IO瀵嗛泦鍨嬶紝娌″繀瑕澶氱嚎绋嬶紝瀹规槗寮勫阀鎴愭嫏銆傚缓璁瓹ache锛屾煇浜涙枃浠剁郴缁熷湪椤哄簭璇绘垨鍐欑鐩樻椂閫熷害鐩稿綋蹇紝濡傛灉鎭板ソ鏂囦欢鏄『搴忓瓨鍌ㄥ湪纾佺洏涓婄殑锛屽缓璁厛灏介噺璇昏繘鍐呭瓨锛屽啀涓娆℃у啓鍑哄幓銆傚叾浠...
  • java 澶氱嚎绋闂 鐪熺殑鎻愰珮浜嗘晥鐜囧悧?
    绛旓細浣犲彲浠ュ啀鑰冭檻鑰冭檻锛屼笉鐢澶氱嚎绋嬶紝浣犳庝箞璁捐涓涓崟绾跨▼绋嬪簭锛屽悓鏃剁洃鍚敭鐩樺拰楹﹀厠椋庣殑淇℃伅褰曞叆锛熷叾瀹炶绠楁満搴曞眰鏄湁澶╃劧鐨勫紓姝ョ壒鎬х殑銆傝繖涓笢瑗垮氨鏄腑鏂傛湁浜涜楁椂鐨刬o鎿嶄綔锛屼粈涔堟椂鍊欏鐞嗗畬鏄彲浠涓嶇敤绠$殑銆傚墿涓嬬殑鏃犲叧绾跨▼灏卞彲浠ヨ嚜鐢辫嚜鍦ㄧ殑杩涜浜嗐傝繖鏍锋晥鐜鏄笉鏄涔熼珮浜嗐傚崟cpu涓鑸篃鏄鏍哥殑銆
  • 绾跨▼鏁版槸浠涔堟剰鎬
    绛旓細绾跨▼鏁版槸鎸囧湪涓涓▼搴忔垨杩涚▼涓悓鏃舵墽琛岀殑绾跨▼鏁伴噺銆傜嚎绋嬫槸鎿嶄綔绯荤粺杩涜璋冨害鐨勬渶灏忓崟浣嶏紝瀹冩槸绋嬪簭鎵ц鐨勫熀鏈崟浣嶃傞氳繃澶氱嚎绋缂栫▼锛鍙互瀹炵幇骞跺彂鎵ц锛鎻愰珮绋嬪簭鐨勬墽琛屾晥鐜囧拰鍝嶅簲閫熷害銆傚湪璁$畻鏈虹郴缁熶腑锛屾瘡涓繘绋嬮兘鏈変竴涓富绾跨▼锛瀹冭礋璐f墽琛岀▼搴忕殑涓昏浠诲姟銆備絾鏄紝鍦ㄦ煇浜涙儏鍐典笅锛屼竴涓繘绋嬪彲鑳介渶瑕佸悓鏃舵墽琛屽涓换鍔...
  • 澶氱嚎绋缂栫▼鎻愰珮鎬ц兘鐨勫師鐞??
    绛旓細鍙互涓哄畠鍒涘缓涓涓嫭绔嬬殑绾跨▼锛瀹冪嫭绔嬪伐浣滐紝涓嶅彈鐢ㄦ埛鎿嶄綔褰卞搷锛岃屼富绾跨▼涔熻兘缁х画蹇熷搷搴旂敤鎴锋搷浣滐紱2.鏈嶅姟鍣ㄩ渶瑕佸苟琛屽鐞嗗涓鎴风杈撳叆锛3.澶ц妯¤繍绠楅氳繃鍚屾椂鍗犵敤澶氫釜CPU鏍稿績鎻愰珮杩愮畻閫熷害锛4.绋嬪簭鏈夎繍绠楋紝鍚屾椂杩橀渶瑕佷笌涓涓垨澶氫釜IO杈冩參鐨勮緭鍏ヨ緭鍑鸿澶囪繘琛屾暟鎹氦鎹傛墦涓瘮鏂癸紝鏈変簺澶嶆潅鐨勩佺郴缁熸х殑浠诲姟...
  • 扩展阅读:为什么不建议用多线程 ... 办公多线程还是单线程 ... cpu几核几线程最好 ... 玩游戏有必要多线程吗 ... 项目中哪里会用到多线程 ... 多线程在项目中的使用 ... 携程 ... 为什么不建议用线程池 ... 电脑cpu怎么改成多线程 ...

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