JAVA多线程问题

java\u4e2d\u591a\u7ebf\u7a0b\u95ee\u9898

===================================
\u9488\u5bf9\u4f60\u7684\u95ee\u9898\u8865\u5145\uff0c\u6211\u518d\u89e3\u91ca\u4e00\u4e0b\uff1a

\u4f60\u8fd8\u662f\u6ca1\u6709\u7406\u89e3\u7ebf\u7a0b\u7684\u539f\u7406\uff0c\u4f60\u8981\u77e5\u90532\u4e2a\u7ebf\u7a0b\u5b8c\u5168\u662fCPU\u7684\u968f\u673a\u884c\u4e3a\uff0c\u603b\u662f\u4e00\u4e2a\u6267\u884c\u5230\u67d0\u4e00\u4e2a\u5730\u65b9\u505c\u6b62\uff08\u4f60\u4e5f\u65e0\u6cd5\u77e5\u9053\u5230\u54ea\u4e2a\u5730\u65b9\u505c\u6b62\uff0c\u968f\u673a\u7684\uff09\uff0c\u53e6\u4e00\u4e2a\u518d\u6267\u884c\uff0c\u7136\u540e\u505c\u6b62\uff0c\u4e0b\u4e00\u4e2a\u7ebf\u7a0b\u6267\u884c\u3002


******* \u51fa\u73b01342\u7684\u539f\u56e0 *********
\u7b2c\u4e00\u4e2a\u7ebf\u7a0b\u6253\u5370\u51fa1\uff0c\u7b2c\u4e8c\u6b21\u6267\u884c\u5230++i\uff0c\u4e5f\u5c31\u662fi\u7b49\u4e8e2\u4e86\uff0c\u4f46\u662f\u6b64\u523b\u8be5\u7ebf\u7a0b\u505c\u6b62\u4e86\uff0c\u5e76\u6ca1\u6709\u8fdb\u884c\u6253\u5370\u3002 \u6b64\u523b\u7b2c\u4e8c\u4e2a\u7ebf\u7a0b\u6267\u884c\uff0c\u6267\u884c\u4e86++i\uff0c\u6b64\u523bi\u7b49\u4e8e3\u4e86\uff0c\u5e76\u8fdb\u884c\u6253\u5370\u4e86\uff0c\u6240\u4ee5\u7b2c\u4e8c\u4e2a\u6253\u5370\u7684\u6570\u5b57\u662f3\u3002

===================================



-----------------------------------------------------
\u6267\u884c\u7ed3\u679c\u4e0d\u4f1a\u6709\u4efb\u4f55\u89c4\u5f8b\uff0c\u5b8c\u5168\u662fCPU\u7684\u968f\u673a\u884c\u4e3a\uff0c\u8fd9\u4e5f\u662f\u7ebf\u7a0b\u7684\u7279\u6027\u3002

\u4e3a\u4e86\u8bc1\u660e\u6211\u7684\u56de\u7b54\uff0c\u6211\u5c06\u4f60\u7684\u7a0b\u5e8f\u6267\u884c\u4e8620\u6b21\uff0c\u7ed3\u679c\u5982\u4e0b\uff1a
1342
1342
1234
1234
1243
1342
1342
1342
1342
1342
1234
1342
1234
1234
1243
1342
1234
1234
1324
1342

\u5176\u4e2d1342\u51fa\u73b0\u4e03\u6b21\uff0c1234\u51fa\u73b0\u4e03\u6b21\uff0c1342\u51fa\u73b0\u4e09\u6b21\uff0c1243\u51fa\u73b0\u4e24\u6b21\uff0c1324\u51fa\u73b0\u4e00\u6b21\u3002

-----------------------------------------------------

\u5916\u9762\u5e94\u8be5\u8fd8\u6709\u4e2a\u5faa\u73af\u7684\u5427\uff1f
\u8fd9\u4e2a\u610f\u601d\u5c31\u662f\uff1a\u5faa\u73af\u4ea4\u66ff\u7740\u8dd12\u4e2a\u7ebf\u7a0b\uff0c\u628a\u5f53\u524d\u8fd0\u884c\u7684\u7ebf\u7a0b\u540d\u5b57\u8f93\u51fa\u51fa\u6765\uff0c\u7136\u540e\u968f\u673a\u51fa\u4e00\u4e2a\u6beb\u79d2\u6570\uff0c\u8ba9\u5f53\u524d\u8fd0\u884c\u7684\u7ebf\u7a0b\u4f11\u7720\u8fd9\u4e2a\u6beb\u79d2\u6570\uff0c\u7136\u540e\u5faa\u73af\u7ee7\u7eed\u8dd1\u53e6\u5916\u4e00\u4e2a\u7ebf\u7a0b\uff0c\u56e0\u4e3a\u7ebf\u7a0b\u7684\u4f11\u7720\u53ef\u80fd\u4f1a\u6709\u5f02\u5e38\uff0c\u6240\u4ee5\u7528try\u3001catch\u6355\u6349\u4e00\u4e0b

main会生成一个进程.所以就是主线程.当这个进程死掉后所有的线程都会结束.所以是主进程.

start是启动一个线程.

run是你说的对象方法调用.是在主线程里面的.所以就是主线程了.

很简单的理解
就是main里面的都是主的.
start出来的都是子的.

不管你的执行内容是什么

mt.run() ; // 直接调用run()方法
这句话注释掉,这个方法一般不是让用户显示调用的

new Thread(mt,"线程").start() ; // 启动线程
你应该会打印出6句话来
其中3句是主线程打印出来的,因为你在MAIN方法里调用它了
其中3句是由叫做"线程"的线程打印出来的,因为它被别的线程打印出来

在你现在的这个程序中,运行时会产生两个线程:
一个线程是调用 main方法产生的线程。
另个线程是调用 new Thread(mt,"线程"); 产生的线程。
这里的mt.run()并不是单独产生一个线程,mt.run()只是main线程里的一段程序。

  • Java澶氱嚎绋嬮棶棰鎬荤粨?
    绛旓細澶氱嚎绋嬪彲浠ラ槻姝㈣繖涓棶棰橈紝澶氭潯绾跨▼鍚屾椂杩愯锛屽摢鎬曚竴鏉$嚎绋嬬殑浠g爜鎵ц璇诲彇鏁版嵁闃诲锛屼篃涓嶄細褰卞搷鍏跺畠浠诲姟鐨勬墽琛銆傦紙3锛変究浜庡缓妯 杩欐槸鍙﹀涓涓病鏈夎繖涔堟槑鏄剧殑浼樼偣浜嗐傚亣璁炬湁涓涓ぇ鐨勪换鍔锛屽崟绾跨▼缂栫▼锛岄偅涔堝氨瑕佽冭檻寰堝锛屽缓绔嬫暣涓▼搴忔ā鍨嬫瘮杈冮夯鐑︺備絾鏄鏋滄妸杩欎釜澶х殑浠诲姟A鍒嗚В鎴愬嚑涓皬浠诲姟锛屼换鍔銆佷换鍔...
  • java+澶氱嚎绋寮傛鍫嗘爤瀹為獙涓彲鑳藉嚭鐜扮殑闂?
    绛旓細绾跨▼瀹夊叏闂锛氱敱浜庡绾跨▼鍚屾椂鎿嶄綔鍏变韩鐨勬暟鎹粨鏋勶紝鍙兘浼氬鑷存暟鎹珵浜夊拰涓嶄竴鑷寸殑缁撴灉銆傞渶瑕佷娇鐢ㄥ悓姝ユ満鍒讹紙濡傞攣銆佷俊鍙烽噺銆佸師瀛愬彉閲忕瓑锛夋潵淇濊瘉绾跨▼瀹夊叏銆2. 姝婚攣闂锛氬鏋滃涓嚎绋嬬浉浜掔瓑寰呭鏂归噴鏀鹃攣锛屽氨浼氬舰鎴愭閿併傞渶瑕侀伩鍏嶅嚭鐜拌繖绉嶆儏鍐碉紝鍙互浣跨敤閬垮厤姝婚攣鐨勭畻娉曟垨鑰呰璁″悎鐞嗙殑閿佺珵浜夌瓥鐣ャ3. 鍐呭瓨娉勬紡闂锛...
  • Java Swing澶氱嚎绋嬫閿侀棶棰瑙f瀽
    绛旓細鍦ㄥ熀浜Java Swing杩涜鍥惧舰鐣岄潰寮鍙戠殑鏃跺 缁忓父閬囧埌鐨勫氨鏄疭wing澶氱嚎绋嬮棶棰 鎴戜滑鍙互鎯虫兂涓涓 濡傛灉闇瑕佸湪涓涓浘褰㈢晫闈笂鏄剧ず寰堝鏁版嵁 杩欎簺鏁版嵁鏄粡杩囬暱鏃堕棿 澶嶆潅鐨勬煡璇㈠拰杩愮畻寰楀埌鐨 濡傛灉鍦ㄥ浘褰㈢晫闈㈢殑鍚屼竴涓嚎绋嬩腑杩涜鏌ヨ鍜岃繍绠楀伐浣滃垯浼氬鑷翠竴娈垫椂闂寸晫闈㈠浜庢鏈虹姸鎬 杩欎細缁欑敤鎴峰甫鏉ヤ笉鑹殑浜掑姩鎰熷彈 涓轰簡瑙e喅杩欎釜...
  • JAVA绋嬪簭璁捐,澶氱嚎绋涓旈伩鍏嶆閿
    绛旓細(1)鏁版嵁搴撴閿佸湪鏁版嵁搴撲腑锛屽鏋滀竴涓繛鎺ュ崰鐢ㄤ簡鍙︿竴涓繛鎺ユ墍闇鐨勬暟鎹簱閿侊紝鍒欏畠鍙互闃诲鍙︿竴涓繛鎺銆傚鏋滀袱涓垨涓や釜浠ヤ笂鐨勮繛鎺ョ浉浜掗樆濉烇紝鍒欏畠浠兘涓嶈兘缁х画鎵ц锛岃繖绉嶆儏鍐电О涓烘暟鎹簱姝婚攣銆傛暟鎹簱姝婚攣闂涓嶆槗澶勭悊锛岄氬父鏁版嵁琛岃繘琛屾洿鏂版椂锛岄渶瑕侀攣瀹氳鏁版嵁琛岋紝鎵ц鏇存柊锛岀劧鍚庡湪鎻愪氦鎴栧洖婊氬皝闂簨鍔℃椂閲婃斁閿併
  • Java澶氱嚎绋绋嬪簭璁捐璇︾粏瑙f瀽
    绛旓細浜斻佺嚎绋嬬殑鍚屾鐢变簬鍚屼竴杩涚▼鐨勫涓嚎绋嬪叡浜悓涓鐗囧瓨鍌ㄧ┖闂,鍦ㄥ甫鏉ユ柟渚跨殑鍚屾椂,涔熷甫鏉ヤ簡璁块棶鍐茬獊杩欎釜涓ラ噸鐨勯棶棰銆侸ava璇█鎻愪緵浜嗕笓闂ㄦ満鍒朵互瑙e喅杩欑鍐茬獊,鏈夋晥閬垮厤浜嗗悓涓涓暟鎹璞¤澶氫釜绾跨▼鍚屾椂璁块棶銆傜敱浜庢垜浠彲浠ラ氳繃 private 鍏抽敭瀛楁潵淇濊瘉鏁版嵁瀵硅薄鍙兘琚柟娉曡闂,鎵浠ユ垜浠彧闇閽堝鏂规硶鎻愬嚭涓濂楁満鍒,杩欏鏈哄埗灏辨槸 ...
  • java闈㈣瘯涓轰粈涔堝緢鍠滄闂澶氱嚎绋楂樺苟鍙
    绛旓細1. 澶氱嚎绋鍜岄珮骞跺彂鏄Java寮鍙戜腑甯歌鐨闂锛欽ava鏄竴绉嶅箍娉涘簲鐢ㄤ簬骞跺彂缂栫▼鐨勮瑷锛屽绾跨▼鍜岄珮骞跺彂鏄疛ava寮鍙戜腑甯搁亣鍒扮殑鎸戞垬銆傚洜姝わ紝闈㈣瘯瀹樼粡甯镐細闂浉鍏抽棶棰橈紝浠ヤ簡瑙i潰璇曡呭浜庤繖鏂归潰鐨勭悊瑙e拰瀹炶返缁忛獙銆2. 澶氱嚎绋嬪拰楂樺苟鍙戞秹鍙婂埌鏍稿績鐨勭紪绋嬫蹇靛拰鎶鏈細鐞嗚В澶氱嚎绋嬪拰楂樺苟鍙戦渶瑕佹帉鎻$嚎绋嬬殑鍩烘湰姒傚康銆佺嚎绋嬬殑...
  • java涓粈涔堝彨鍋氱嚎绋?浠涔堝彨澶氱嚎绋?澶氱嚎绋嬬殑鐗圭偣鏄粈涔
    绛旓細鍦 Java 涓紝绾跨▼锛圱hread锛夋槸鎸囩▼搴忔墽琛岀殑涓鏉¤矾寰勶紝鏄繘绋嬩腑鐨勪竴涓疄浣撱侸ava 涓殑绾跨▼鏄交閲忕骇鐨勶紝鍙互鍚屾椂杩愯澶氫釜绾跨▼锛岃繖灏辨槸澶氱嚎绋锛圡ultithreading锛夈傚绾跨▼鏄寚鍦ㄤ竴涓▼搴忎腑鍚屾椂杩愯澶氫釜绾跨▼锛屾瘡涓嚎绋嬮兘鍙互鐙珛鎵ц涓嶅悓鐨勪换鍔°傚绾跨▼鐨勭壒鐐瑰寘鎷細鎻愰珮绋嬪簭鐨勫苟鍙戞э細澶氱嚎绋嬪彲浠ヨ绋嬪簭鍚屾椂鎵ц...
  • 濡備綍瑙e喅java 澶氱嚎绋嬮棶棰
    绛旓細Java绾跨▼鍚屾 鐢变簬鍚屼竴杩涚▼鐨勫涓嚎绋嬪叡浜悓涓鐗囧瓨鍌ㄧ┖闂达紝鍦ㄥ甫鏉ユ柟渚跨殑鍚屾椂锛屼篃甯︽潵浜嗚闂啿绐佽繖涓弗閲嶇殑闂銆侸ava璇█鎻愪緵浜嗕笓闂ㄦ満鍒朵互瑙e喅杩欑鍐茬獊锛屾湁鏁堥伩鍏嶄簡鍚屼竴涓暟鎹璞¤澶氫釜绾跨▼鍚屾椂璁块棶銆 鐢变簬鎴戜滑鍙互閫氳繃 private 鍏抽敭瀛楁潵淇濊瘉鏁版嵁瀵硅薄鍙兘琚柟娉曡闂紝鎵浠ユ垜浠彧闇閽堝鏂规硶鎻愬嚭涓濂楁満鍒讹紝杩欏鏈...
  • 鍦Java 涓澶氱嚎绋鐨勫疄鐜版柟娉曟湁鍝簺,濡備綍浣跨敤锝烇綖锝炴
    绛旓細1銆 璁よ瘑Thread鍜孯unnable Java涓疄鐜澶氱嚎绋鏈変袱绉嶉斿緞锛氱户鎵縏hread绫绘垨鑰呭疄鐜癛unnable鎺ュ彛銆俁unnable鏄帴鍙o紝寤鸿鐢ㄦ帴鍙g殑鏂瑰紡鐢熸垚绾跨▼锛屽洜涓烘帴鍙e彲浠ュ疄鐜板缁ф壙锛屽喌涓擱unnable鍙湁涓涓猺un鏂规硶锛屽緢閫傚悎缁ф壙銆傚湪浣跨敤Thread鐨勬椂鍊欏彧闇缁ф壙Thread锛屽苟涓攏ew涓涓疄渚嬪嚭鏉ワ紝璋冪敤start()鏂规硶鍗冲彲浠ュ惎鍔ㄤ竴涓嚎绋嬨俆hread ...
  • 浠涔堟槸java澶氱嚎绋璇﹁В
    绛旓細锛1锛夎繘绋嬩箣闂翠笉鑳藉叡浜暟鎹紝绾跨▼鍙互锛涳紙2锛夌郴缁熷垱寤鸿繘绋嬮渶瑕佷负璇ヨ繘绋嬮噸鏂板垎閰嶇郴缁熻祫婧愶紝鏁呭垱寤虹嚎绋嬩唬浠锋瘮杈冨皬锛涳紙3锛塉ava璇█鍐呯疆浜嗗绾跨▼鍔熻兘鏀寔锛岀畝鍖栦簡java澶氱嚎绋缂栫▼銆備竴銆佸垱寤虹嚎绋嬪拰鍚姩 锛1锛夌户鎵縏hread绫诲垱寤虹嚎绋嬬被 閫氳繃缁ф壙Thread绫诲垱寤虹嚎绋嬬被鐨勫叿浣撴楠ゅ拰鍏蜂綋浠g爜濡備笅锛• 瀹氫箟涓涓户鎵...
  • 扩展阅读:多线程面试题 ... java 线程面试题 ... java秒杀 多线程实例 ... springboot多线程 ... java 多线程面试 ... java多线程 多进程案例 ... java创建线程的四种方式 ... 为什么都不建议java转测试 ... 什么是java多线程 ...

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