java中线程的两种创建方式
第一种:继承java.lang.Thread类、然后重写run方法
例如我们模拟一个龟兔赛跑
1 package edu.aeon.thread; 2 3 /** 4 * 说明:模拟龟兔赛跑 5 * 6 * @author lzj 7 * 8 */ 9 public class RabbitThread extends Thread { 10 @Override 11 public void run() { 12 for (int i = 1; i <= 100; i++) { 13 System.out.println("兔子跑了" + i + "步!"); 14 } 15 } 16 } 17 18 /** 19 * 乌龟线程 20 * 21 * @author lzj 22 * 23 */ 24 class TortoiseThread extends Thread { 25 @Override 26 public void run() { 27 for (int i = 1; i <= 100; i++) { 28 System.out.println("乌龟跑了" + i + "步!"); 29 } 30 } 31 }
测试类如下:
package edu.aeon.thread; /** * 说明:线程测试类 开启一个线程用start 调用run方法只是跑了一个普通的方法 * * @author lzj * */ public class ThreadTest { public static void main(String[] args) { RabbitThread rt = new RabbitThread(); TortoiseThread tt = new TortoiseThread(); // 开启兔子线程 rt.start(); // 开启乌龟线程 tt.start(); // 开启main线程 for (int i = 1; i <= 100; i++) { System.out.println("main跑了" + i + "步!"); } // gc线程及异常处理线程同上main线程、此处略 } }
测试结果:
main跑了1步! main跑了2步! 兔子跑了1步! 兔子跑了2步! 乌龟跑了1步! 乌龟跑了2步! 兔子跑了3步! 兔子跑了4步! 兔子跑了5步! main跑了3步! main跑了4步! 兔子跑了6步! 兔子跑了7步! 乌龟跑了3步! 乌龟跑了4步! 乌龟跑了5步! 乌龟跑了6步! 乌龟跑了7步! 乌龟跑了8步! 乌龟跑了9步! 乌龟跑了10步! 乌龟跑了11步! 乌龟跑了12步! 乌龟跑了13步! 乌龟跑了14步! 乌龟跑了15步! 乌龟跑了16步! 乌龟跑了17步! 乌龟跑了18步! 乌龟跑了19步! 乌龟跑了20步! 乌龟跑了21步! 乌龟跑了22步! 乌龟跑了23步! 乌龟跑了24步! 乌龟跑了25步! 兔子跑了8步! 兔子跑了9步! main跑了5步! main跑了6步! 兔子跑了10步! 兔子跑了11步! 乌龟跑了26步! 兔子跑了12步! main跑了7步! main跑了8步! main跑了9步! main跑了10步! 兔子跑了13步! 兔子跑了14步! 兔子跑了15步! 乌龟跑了27步! 乌龟跑了28步! 乌龟跑了29步! 兔子跑了16步! 兔子跑了17步! main跑了11步! 兔子跑了18步! 兔子跑了19步! 兔子跑了20步! 兔子跑了21步! 兔子跑了22步! 兔子跑了23步! 兔子跑了24步! 兔子跑了25步! 兔子跑了26步! 兔子跑了27步! 兔子跑了28步! 兔子跑了29步! 兔子跑了30步! 兔子跑了31步! 兔子跑了32步! 兔子跑了33步! 兔子跑了34步! 兔子跑了35步! 兔子跑了36步! 兔子跑了37步! 兔子跑了38步! 兔子跑了39步! 兔子跑了40步! 兔子跑了41步! 兔子跑了42步! 兔子跑了43步! 兔子跑了44步! 兔子跑了45步! 兔子跑了46步! 兔子跑了47步! 兔子跑了48步! 兔子跑了49步! 兔子跑了50步! 兔子跑了51步! 兔子跑了52步! 兔子跑了53步! 兔子跑了54步! 兔子跑了55步! 兔子跑了56步! 乌龟跑了30步! 兔子跑了57步! 兔子跑了58步! 兔子跑了59步! main跑了12步! 兔子跑了60步! 兔子跑了61步! 兔子跑了62步! 兔子跑了63步! 兔子跑了64步! 兔子跑了65步! 兔子跑了66步! 兔子跑了67步! 兔子跑了68步! 兔子跑了69步! 兔子跑了70步! 兔子跑了71步! 兔子跑了72步! 兔子跑了73步! 兔子跑了74步! 兔子跑了75步! 兔子跑了76步! 兔子跑了77步! 兔子跑了78步! 兔子跑了79步! 兔子跑了80步! 兔子跑了81步! 兔子跑了82步! 兔子跑了83步! 兔子跑了84步! 兔子跑了85步! 兔子跑了86步! 兔子跑了87步! 兔子跑了88步! 兔子跑了89步! 兔子跑了90步! 兔子跑了91步! 兔子跑了92步! 兔子跑了93步! 兔子跑了94步! 兔子跑了95步! 兔子跑了96步! 兔子跑了97步! 兔子跑了98步! 兔子跑了99步! 兔子跑了100步! 乌龟跑了31步! 乌龟跑了32步! main跑了13步! main跑了14步! main跑了15步! main跑了16步! main跑了17步! main跑了18步! main跑了19步! main跑了20步! main跑了21步! main跑了22步! main跑了23步! main跑了24步! main跑了25步! main跑了26步! main跑了27步! main跑了28步! 乌龟跑了33步! main跑了29步! 乌龟跑了34步! 乌龟跑了35步! 乌龟跑了36步! 乌龟跑了37步! 乌龟跑了38步! 乌龟跑了39步! 乌龟跑了40步! 乌龟跑了41步! 乌龟跑了42步! 乌龟跑了43步! 乌龟跑了44步! 乌龟跑了45步! 乌龟跑了46步! 乌龟跑了47步! 乌龟跑了48步! 乌龟跑了49步! 乌龟跑了50步! 乌龟跑了51步! 乌龟跑了52步! 乌龟跑了53步! 乌龟跑了54步! 乌龟跑了55步! 乌龟跑了56步! 乌龟跑了57步! 乌龟跑了58步! 乌龟跑了59步! 乌龟跑了60步! 乌龟跑了61步! 乌龟跑了62步! 乌龟跑了63步! 乌龟跑了64步! 乌龟跑了65步! 乌龟跑了66步! 乌龟跑了67步! 乌龟跑了68步! 乌龟跑了69步! 乌龟跑了70步! 乌龟跑了71步! 乌龟跑了72步! 乌龟跑了73步! 乌龟跑了74步! 乌龟跑了75步! 乌龟跑了76步! 乌龟跑了77步! 乌龟跑了78步! 乌龟跑了79步! 乌龟跑了80步! 乌龟跑了81步! 乌龟跑了82步! 乌龟跑了83步! 乌龟跑了84步! 乌龟跑了85步! 乌龟跑了86步! 乌龟跑了87步! 乌龟跑了88步! 乌龟跑了89步! 乌龟跑了90步! 乌龟跑了91步! 乌龟跑了92步! 乌龟跑了93步! 乌龟跑了94步! 乌龟跑了95步! 乌龟跑了96步! 乌龟跑了97步! 乌龟跑了98步! 乌龟跑了99步! 乌龟跑了100步! main跑了30步! main跑了31步! main跑了32步! main跑了33步! main跑了34步! main跑了35步! main跑了36步! main跑了37步! main跑了38步! main跑了39步! main跑了40步! main跑了41步! main跑了42步! main跑了43步! main跑了44步! main跑了45步! main跑了46步! main跑了47步! main跑了48步! main跑了49步! main跑了50步! main跑了51步! main跑了52步! main跑了53步! main跑了54步! main跑了55步! main跑了56步! main跑了57步! main跑了58步! main跑了59步! main跑了60步! main跑了61步! main跑了62步! main跑了63步! main跑了64步! main跑了65步! main跑了66步! main跑了67步! main跑了68步! main跑了69步! main跑了70步! main跑了71步! main跑了72步! main跑了73步! main跑了74步! main跑了75步! main跑了76步! main跑了77步! main跑了78步! main跑了79步! main跑了80步! main跑了81步! main跑了82步! main跑了83步! main跑了84步! main跑了85步! main跑了86步! main跑了87步! main跑了88步! main跑了89步! main跑了90步! main跑了91步! main跑了92步! main跑了93步! main跑了94步! main跑了95步! main跑了96步! main跑了97步! main跑了98步! main跑了99步! main跑了100步!
第二种:通过实现Runnable接口
package edu.aeon.thread; /** * [说明:]多线程实现的第二种方式:通过静态代理(实现java.lang.Runnable接口) * * @author lzj * */ public class Programer implements Runnable { @Override public void run() { for (int i = 1; i <= 1000; i++) { System.out.println("一边调代码..." + i); } } }
测试:
package edu.aeon.thread; /** * [说明]:通过静态代理(实现java.lang.Runnable接口)来测试多线程 * @author lzj * */ public class ThreadTest1 { public static void main(String[] args) { //真实角色 Programer p=new Programer(); //代理角色、持有对真实角色的引用 Thread t=new Thread(p); //启动线程 t.start(); //main线程 for(int i=1;i<=1000;i++){ System.out.println("main>>>"+i); } } }
测试结果:
一边调代码...1 main>>>1 一边调代码...2 一边调代码...3 一边调代码...4 main>>>2 一边调代码...5 main>>>3 一边调代码...6 main>>>4 一边调代码...7 main>>>5 一边调代码...8 main>>>6 一边调代码...9 main>>>7 main>>>8 main>>>9 main>>>10 main>>>11 main>>>12 main>>>13 main>>>14 main>>>15 main>>>16 main>>>17 main>>>18 main>>>19 main>>>20 main>>>21 main>>>22 main>>>23 main>>>24 main>>>25 main>>>26 main>>>27 main>>>28 main>>>29 main>>>30 main>>>31 main>>>32 main>>>33 main>>>34 main>>>35 main>>>36 main>>>37 main>>>38 main>>>39 main>>>40 main>>>41 main>>>42 main>>>43 main>>>44 main>>>45 main>>>46 main>>>47 main>>>48 main>>>49 main>>>50 main>>>51 main>>>52 main>>>53 main>>>54 main>>>55 main>>>56 main>>>57 main>>>58 main>>>59 main>>>60 main>>>61 main>>>62 main>>>63 main>>>64 main>>>65 main>>>66 main>>>67 main>>>68 main>>>69 main>>>70 main>>>71 main>>>72 main>>>73 main>>>74 main>>>75 main>>>76 main>>>77 main>>>78 main>>>79 main>>>80 main>>>81 main>>>82 main>>>83 main>>>84 main>>>85 main>>>86 main>>>87 main>>>88 main>>>89 main>>>90 main>>>91 main>>>92 main>>>93 main>>>94 main>>>95 main>>>96 main>>>97 main>>>98 main>>>99 main>>>100 main>>>101 main>>>102 main>>>103 main>>>104 main>>>105 main>>>106 main>>>107 main>>>108 main>>>109 一边调代码...10 main>>>110 main>>>111 main>>>112 main>>>113 main>>>114 main>>>115 main>>>116 main>>>117 main>>>118 main>>>119 一边调代码...11 一边调代码...12 一边调代码...13 一边调代码...14 一边调代码...15 一边调代码...16 一边调代码...17 一边调代码...18 一边调代码...19 一边调代码...20 一边调代码...21 一边调代码...22 一边调代码...23 一边调代码...24 一边调代码...25 一边调代码...26 一边调代码...27 一边调代码...28 一边调代码...29 一边调代码...30 一边调代码...31 一边调代码...32 一边调代码...33 一边调代码...34 一边调代码...35 一边调代码...36 一边调代码...37 一边调代码...38 一边调代码...39 一边调代码...40 一边调代码...41 一边调代码...42 一边调代码...43 一边调代码...44 一边调代码...45 一边调代码...46 一边调代码...47 一边调代码...48 一边调代码...49 一边调代码...50 main>>>120 一边调代码...51 main>>>121 一边调代码...52 main>>>122 一边调代码...53 main>>>123 一边调代码...54 main>>>124 一边调代码...55 main>>>125 一边调代码...56 main>>>126 一边调代码...57 main>>>127 一边调代码...58 main>>>128 一边调代码...59 main>>>129 一边调代码...60 main>>>130 一边调代码...61 main>>>131 一边调代码...62 main>>>132 一边调代码...63 main>>>133 一边调代码...64 一边调代码...65 main>>>134 一边调代码...66 main>>>135 一边调代码...67 main>>>136 一边调代码...68 main>>>137 一边调代码...69 main>>>138 一边调代码...70 main>>>139 一边调代码...71 main>>>140 一边调代码...72 main>>>141 一边调代码...73 main>>>142 main>>>143 一边调代码...74 main>>>144 一边调代码...75 main>>>145 一边调代码...76 main>>>146 一边调代码...77 main>>>147 一边调代码...78 main>>>148 一边调代码...79 main>>>149 一边调代码...80 main>>>150 一边调代码...81 main>>>151 一边调代码...82 main>>>152 一边调代码...83 main>>>153 一边调代码...84 main>>>154 一边调代码...85 main>>>155 一边调代码...86 main>>>156 一边调代码...87 main>>>157 一边调代码...88 main>>>158 一边调代码...89 main>>>159 一边调代码...90 main>>>160 一边调代码...91 main>>>161 一边调代码...92 main>>>162 一边调代码...93 main>>>163 一边调代码...94 main>>>164 一边调代码...95 一边调代码...96 一边调代码...97 一边调代码...98 main>>>165 main>>>166 main>>>167 main>>>168 main>>>169 main>>>170 main>>>171 main>>>172 main>>>173 main>>>174 main>>>175 main>>>176 main>>>177 main>>>178 main>>>179 main>>>180 main>>>181 main>>>182 main>>>183 main>>>184 一边调代码...99 main>>>185 main>>>186 main>>>187 main>>>188 main>>>189 main>>>190 main>>>191 main>>>192 main>>>193 main>>>194 main>>>195 main>>>196 main>>>197 main>>>198 main>>>199 main>>>200 main>>>201 main>>>202 main>>>203 main>>>204 main>>>205 main>>>206 main>>>207 main>>>208 main>>>209 main>>>210 main>>>211 main>>>212 main>>>213 main>>>214 main>>>215 main>>>216 main>>>217 main>>>218 main>>>219 main>>>220 main>>>221 main>>>222 main>>>223 main>>>224 main>>>225 main>>>226 main>>>227 main>>>228 main>>>229 main>>>230 main>>>231 main>>>232 main>>>233 main>>>234 main>>>235 main>>>236 一边调代码...100 main>>>237 一边调代码...101 main>>>238 一边调代码...102 main>>>239 一边调代码...103 main>>>240 一边调代码...104 一边调代码...105 一边调代码...106 一边调代码...107 一边调代码...108 一边调代码...109 一边调代码...110 一边调代码...111 一边调代码...112 一边调代码...113 一边调代码...114 一边调代码...115 一边调代码...116 一边调代码...117 一边调代码...118 一边调代码...119 一边调代码...120 一边调代码...121 一边调代码...122 一边调代码...123 一边调代码...124 一边调代码...125 一边调代码...126 一边调代码...127 一边调代码...128 一边调代码...129 一边调代码...130 一边调代码...131 一边调代码...132 一边调代码...133 一边调代码...134 一边调代码...135 一边调代码...136 一边调代码...137 一边调代码...138 一边调代码...139 一边调代码...140 一边调代码...141 一边调代码...142 一边调代码...143 一边调代码...144 一边调代码...145 一边调代码...146 一边调代码...147 一边调代码...148 一边调代码...149 一边调代码...150 一边调代码...151 main>>>241 一边调代码...152 main>>>242 main>>>243 一边调代码...153 main>>>244 main>>>245 main>>>246 main>>>247 main>>>248 main>>>249 main>>>250 main>>>251 main>>>252 main>>>253 main>>>254 main>>>255 main>>>256 一边调代码...154 main>>>257 main>>>258 一边调代码...155 main>>>259 main>>>260 main>>>261 main>>>262 main>>>263 main>>>264 main>>>265 main>>>266 main>>>267 main>>>268 main>>>269 一边调代码...156 main>>>270 main>>>271 main>>>272 main>>>273 main>>>274 main>>>275 main>>>276 main>>>277 main>>>278 main>>>279 main>>>280 main>>>281 一边调代码...157 main>>>282 一边调代码...158 main>>>283 一边调代码...159 main>>>284 一边调代码...160 main>>>285 一边调代码...161 main>>>286 一边调代码...162 main>>>287 一边调代码...163 main>>>288 一边调代码...164 main>>>289 一边调代码...165 main>>>290 一边调代码...166 main>>>291 一边调代码...167 main>>>292 一边调代码...168 main>>>293 一边调代码...169 main>>>294 一边调代码...170 main>>>295 一边调代码...171 main>>>296 一边调代码...172 main>>>297 一边调代码...173 main>>>298 一边调代码...174 main>>>299 一边调代码...175 main>>>300 一边调代码...176 main>>>301 一边调代码...177 main>>>302 一边调代码...178 main>>>303 一边调代码...179 main>>>304 一边调代码...180 main>>>305 一边调代码...181 main>>>306 一边调代码...182 main>>>307 一边调代码...183 main>>>308 一边调代码...184 main>>>309 一边调代码...185 main>>>310 一边调代码...186 main>>>311 一边调代码...187 main>>>312 一边调代码...188 main>>>313 一边调代码...189 main>>>314 一边调代码...190 main>>>315 一边调代码...191 main>>>316 一边调代码...192 main>>>317 一边调代码...193 main>>>318 一边调代码...194 main>>>319 一边调代码...195 main>>>320 一边调代码...196 main>>>321 一边调代码...197 main>>>322 一边调代码...198 main>>>323 一边调代码...199 main>>>324 一边调代码...200 main>>>325 一边调代码...201 main>>>326 一边调代码...202 main>>>327 一边调代码...203 main>>>328 一边调代码...204 main>>>329 一边调代码...205 main>>>330 一边调代码...206 main>>>331 一边调代码...207 main>>>332 一边调代码...208 main>>>333 一边调代码...209 main>>>334 一边调代码...210 main>>>335 一边调代码...211 main>>>336 一边调代码...212 main>>>337 一边调代码...213 main>>>338 一边调代码...214 main>>>339 一边调代码...215 main>>>340 一边调代码...216 main>>>341 一边调代码...217 main>>>342 一边调代码...218 main>>>343 一边调代码...219 main>>>344 一边调代码...220 main>>>345 一边调代码...221 main>>>346 一边调代码...222 main>>>347 main>>>348 main>>>349 main>>>350 main>>>351 main>>>352 main>>>353 main>>>354 main>>>355 main>>>356 main>>>357 main>>>358 main>>>359 main>>>360 main>>>361 main>>>362 main>>>363 main>>>364 main>>>365 main>>>366 main>>>367 main>>>368 main>>>369 main>>>370 main>>>371 main>>>372 main>>>373 main>>>374 main>>>375 main>>>376 main>>>377 main>>>378 main>>>379 main>>>380 main>>>381 main>>>382 main>>>383 main>>>384 main>>>385 main>>>386 main>>>387 main>>>388 main>>>389 main>>>390 main>>>391 main>>>392 main>>>393 main>>>394 main>>>395 main>>>396 main>>>397 main>>>398 main>>>399 main>>>400 main>>>401 main>>>402 main>>>403 main>>>404 main>>>405 main>>>406 main>>>407 main>>>408 main>>>409 main>>>410 main>>>411 main>>>412 main>>>413 main>>>414 main>>>415 main>>>416 main>>>417 main>>>418 main>>>419 main>>>420 main>>>421 main>>>422 main>>>423 main>>>424 main>>>425 main>>>426 main>>>427 main>>>428 main>>>429 main>>>430 main>>>431 main>>>432 main>>>433 main>>>434 main>>>435 main>>>436 main>>>437 main>>>438 main>>>439 main>>>440 main>>>441 main>>>442 main>>>443 main>>>444 main>>>445 main>>>446 main>>>447 main>>>448 main>>>449 main>>>450 main>>>451 main>>>452 main>>>453 main>>>454 main>>>455 main>>>456 main>>>457 main>>>458 main>>>459 main>>>460 main>>>461 main>>>462 main>>>463 main>>>464 main>>>465 main>>>466 main>>>467 main>>>468 main>>>469 main>>>470 main>>>471 main>>>472 main>>>473 main>>>474 main>>>475 main>>>476 main>>>477 main>>>478 main>>>479 main>>>480 main>>>481 main>>>482 main>>>483 main>>>484 main>>>485 main>>>486 main>>>487 main>>>488 main>>>489 main>>>490 main>>>491 main>>>492 main>>>493 main>>>494 main>>>495 main>>>496 main>>>497 main>>>498 main>>>499 main>>>500 main>>>501 main>>>502 main>>>503 main>>>504 main>>>505 main>>>506 main>>>507 main>>>508 main>>>509 main>>>510 main>>>511 main>>>512 main>>>513 main>>>514 main>>>515 main>>>516 main>>>517 main>>>518 main>>>519 main>>>520 main>>>521 main>>>522 main>>>523 main>>>524 main>>>525 main>>>526 main>>>527 main>>>528 main>>>529 main>>>530 main>>>531 main>>>532 main>>>533 main>>>534 main>>>535 main>>>536 main>>>537 main>>>538 main>>>539 main>>>540 main>>>541 main>>>542 main>>>543 main>>>544 main>>>545 main>>>546 main>>>547 main>>>548 main>>>549 main>>>550 main>>>551 main>>>552 main>>>553 main>>>554 main>>>555 main>>>556 main>>>557 main>>>558 main>>>559 main>>>560 main>>>561 main>>>562 main>>>563 main>>>564 main>>>565 main>>>566 main>>>567 main>>>568 main>>>569 main>>>570 main>>>571 main>>>572 main>>>573 main>>>574 main>>>575 main>>>576 main>>>577 main>>>578 main>>>579 main>>>580 main>>>581 main>>>582 main>>>583 main>>>584 main>>>585 main>>>586 main>>>587 main>>>588 main>>>589 main>>>590 main>>>591 main>>>592 main>>>593 main>>>594 main>>>595 main>>>596 main>>>597 main>>>598 main>>>599 main>>>600 main>>>601 main>>>602 main>>>603 main>>>604 main>>>605 main>>>606 main>>>607 main>>>608 main>>>609 main>>>610 main>>>611 main>>>612 main>>>613 main>>>614 main>>>615 main>>>616 main>>>617 main>>>618 main>>>619 main>>>620 main>>>621 main>>>622 main>>>623 main>>>624 main>>>625 main>>>626 main>>>627 main>>>628 main>>>629 main>>>630 main>>>631 main>>>632 main>>>633 main>>>634 main>>>635 main>>>636 main>>>637 main>>>638 main>>>639 main>>>640 main>>>641 main>>>642 main>>>643 main>>>644 main>>>645 main>>>646 main>>>647 main>>>648 main>>>649 main>>>650 main>>>651 main>>>652 main>>>653 main>>>654 main>>>655 main>>>656 main>>>657 main>>>658 main>>>659 main>>>660 main>>>661 main>>>662 main>>>663 main>>>664 main>>>665 main>>>666 main>>>667 main>>>668 main>>>669 main>>>670 main>>>671 main>>>672 main>>>673 main>>>674 main>>>675 main>>>676 main>>>677 main>>>678 main>>>679 main>>>680 main>>>681 main>>>682 main>>>683 一边调代码...223 main>>>684 一边调代码...224 一边调代码...225 main>>>685 main>>>686 一边调代码...226 main>>>687 一边调代码...227 main>>>688 一边调代码...228 main>>>689 一边调代码...229 main>>>690 一边调代码...230 main>>>691 一边调代码...231 main>>>692 一边调代码...232 main>>>693 一边调代码...233 main>>>694 一边调代码...234 main>>>695 一边调代码...235 main>>>696 一边调代码...236 一边调代码...237 一边调代码...238 一边调代码...239 一边调代码...240 一边调代码...241 一边调代码...242 一边调代码...243 一边调代码...244 一边调代码...245 一边调代码...246 一边调代码...247 一边调代码...248 一边调代码...249 一边调代码...250 一边调代码...251 一边调代码...252 一边调代码...253 一边调代码...254 一边调代码...255 一边调代码...256 main>>>697 一边调代码...257 main>>>698 一边调代码...258 main>>>699 一边调代码...259 main>>>700 一边调代码...260 main>>>701 一边调代码...261 main>>>702 一边调代码...262 main>>>703 main>>>704 main>>>705 main>>>706 main>>>707 main>>>708 main>>>709 main>>>710 main>>>711 main>>>712 main>>>713 main>>>714 main>>>715 main>>>716 main>>>717 main>>>718 main>>>719 main>>>720 一边调代码...263 main>>>721 一边调代码...264 main>>>722 一边调代码...265 main>>>723 一边调代码...266 main>>>724 一边调代码...267 main>>>725 一边调代码...268 main>>>726 一边调代码...269 main>>>727 一边调代码...270 main>>>728 一边调代码...271 main>>>729 一边调代码...272 main>>>730 一边调代码...273 main>>>731 一边调代码...274 main>>>732 一边调代码...275 main>>>733 一边调代码...276 main>>>734 一边调代码...277 main>>>735 一边调代码...278 main>>>736 一边调代码...279 main>>>737 一边调代码...280 main>>>738 一边调代码...281 main>>>739 一边调代码...282 main>>>740 一边调代码...283 main>>>741 一边调代码...284 main>>>742 一边调代码...285 main>>>743 一边调代码...286 main>>>744 一边调代码...287 main>>>745 一边调代码...288 main>>>746 一边调代码...289 main>>>747 一边调代码...290 main>>>748 一边调代码...291 main>>>749 一边调代码...292 main>>>750 一边调代码...293 main>>>751 一边调代码...294 main>>>752 一边调代码...295 main>>>753 一边调代码...296 main>>>754 一边调代码...297 main>>>755 一边调代码...298 main>>>756 一边调代码...299 main>>>757 一边调代码...300 main>>>758 一边调代码...301 main>>>759 一边调代码...302 main>>>760 一边调代码...303 main>>>761 一边调代码...304 main>>>762 一边调代码...305 main>>>763 一边调代码...306 main>>>764 一边调代码...307 main>>>765 一边调代码...308 main>>>766 一边调代码...309 main>>>767 一边调代码...310 main>>>768 一边调代码...311 main>>>769 一边调代码...312 main>>>770 一边调代码...313 main>>>771 一边调代码...314 main>>>772 一边调代码...315 main>>>773 一边调代码...316 main>>>774 一边调代码...317 main>>>775 一边调代码...318 main>>>776 一边调代码...319 main>>>777 一边调代码...320 main>>>778 一边调代码...321 main>>>779 一边调代码...322 main>>>780 一边调代码...323 main>>>781 一边调代码...324 main>>>782 一边调代码...325 main>>>783 main>>>784 main>>>785 main>>>786 main>>>787 一边调代码...326 main>>>788 一边调代码...327 main>>>789 一边调代码...328 main>>>790 一边调代码...329 main>>>791 一边调代码...330 main>>>792 一边调代码...331 main>>>793 一边调代码...332 main>>>794 一边调代码...333 main>>>795 一边调代码...334 main>>>796 一边调代码...335 main>>>797 一边调代码...336 main>>>798 一边调代码...337 main>>>799 一边调代码...338 main>>>800 一边调代码...339 main>>>801 一边调代码...340 main>>>802 一边调代码...341 main>>>803 一边调代码...342 main>>>804 一边调代码...343 main>>>805 一边调代码...344 main>>>806 一边调代码...345 main>>>807 一边调代码...346 main>>>808 一边调代码...347 main>>>809 一边调代码...348 main>>>810 一边调代码...349 main>>>811 一边调代码...350 main>>>812 一边调代码...351 main>>>813 一边调代码...352 main>>>814 一边调代码...353 main>>>815 一边调代码...354 main>>>816 一边调代码...355 main>>>817 一边调代码...356 main>>>818 一边调代码...357 main>>>819 一边调代码...358 main>>>820 一边调代码...359 main>>>821 一边调代码...360 main>>>822 一边调代码...361 main>>>823 一边调代码...362 main>>>824 一边调代码...363 main>>>825 一边调代码...364 main>>>826 一边调代码...365 main>>>827 一边调代码...366 main>>>828 一边调代码...367 main>>>829 一边调代码...368 一边调代码...369 main>>>830 一边调代码...370 一边调代码...371 main>>>831 一边调代码...372 一边调代码...373 一边调代码...374 一边调代码...375 main>>>832 一边调代码...376 一边调代码...377 一边调代码...378 一边调代码...379 一边调代码...380 一边调代码...381 一边调代码...382 一边调代码...383 main>>>833 一边调代码...384 一边调代码...385 main>>>834 一边调代码...386 一边调代码...387 main>>>835 一边调代码...388 一边调代码...389 一边调代码...390 main>>>836 一边调代码...391 一边调代码...392 一边调代码...393 main>>>837 一边调代码...394 一边调代码...395 main>>>838 一边调代码...396 一边调代码...397 一边调代码...398 一边调代码...399 一边调代码...400 一边调代码...401 main>>>839 一边调代码...402 一边调代码...403 一边调代码...404 main>>>840 一边调代码...405 一边调代码...406 一边调代码...407 一边调代码...408 一边调代码...409 一边调代码...410 一边调代码...411 main>>>841 一边调代码...412 一边调代码...413 一边调代码...414 一边调代码...415 一边调代码...416 main>>>842 一边调代码...417 一边调代码...418 一边调代码...419 main>>>843 一边调代码...420 一边调代码...421 main>>>844 一边调代码...422 一边调代码...423 一边调代码...424 main>>>845 一边调代码...425 一边调代码...426 一边调代码...427 一边调代码...428 一边调代码...429 一边调代码...430 一边调代码...431 一边调代码...432 一边调代码...433 一边调代码...434 一边调代码...435 一边调代码...436 一边调代码...437 一边调代码...438 一边调代码...439 一边调代码...440 一边调代码...441 main>>>846 一边调代码...442 main>>>847 一边调代码...443 main>>>848 一边调代码...444 main>>>849 一边调代码...445 main>>>850 一边调代码...446 main>>>851 一边调代码...447 main>>>852 一边调代码...448 main>>>853 一边调代码...449 main>>>854 一边调代码...450 main>>>855 一边调代码...451 main>>>856 一边调代码...452 main>>>857 一边调代码...453 main>>>858 一边调代码...454 main>>>859 一边调代码...455 main>>>860 一边调代码...456 main>>>861 一边调代码...457 main>>>862 一边调代码...458 main>>>863 一边调代码...459 main>>>864 一边调代码...460 main>>>865 一边调代码...461 main>>>866 一边调代码...462 main>>>867 一边调代码...463 main>>>868 一边调代码...464 main>>>869 一边调代码...465 main>>>870 一边调代码...466 main>>>871 一边调代码...467 main>>>872 一边调代码...468 main>>>873 一边调代码...469 一边调代码...470 一边调代码...471 一边调代码...472 一边调代码...473 一边调代码...474 一边调代码...475 一边调代码...476 一边调代码...477 一边调代码...478 一边调代码...479 一边调代码...480 一边调代码...481 一边调代码...482 一边调代码...483 一边调代码...484 一边调代码...485 一边调代码...486 一边调代码...487 一边调代码...488 一边调代码...489 一边调代码...490 一边调代码...491 一边调代码...492 一边调代码...493 一边调代码...494 一边调代码...495 一边调代码...496 一边调代码...497 一边调代码...498 main>>>874 一边调代码...499 main>>>875 一边调代码...500 main>>>876 一边调代码...501 main>>>877 一边调代码...502 main>>>878 一边调代码...503 main>>>879 一边调代码...504 main>>>880 一边调代码...505 main>>>881 一边调代码...506 main>>>882 一边调代码...507 main>>>883 一边调代码...508 main>>>884 一边调代码...509 main>>>885 一边调代码...510 main>>>886 一边调代码...511 main>>>887 一边调代码...512 main>>>888 一边调代码...513 main>>>889 一边调代码...514 main>>>890 一边调代码...515 main>>>891 一边调代码...516 main>>>892 一边调代码...517 main>>>893 一边调代码...518 main>>>894 一边调代码...519 main>>>895 一边调代码...520 main>>>896 一边调代码...521 main>>>897 一边调代码...522 main>>>898 一边调代码...523 main>>>899 一边调代码...524 main>>>900 一边调代码...525 main>>>901 一边调代码...526 main>>>902 一边调代码...527 main>>>903 一边调代码...528 main>>>904 一边调代码...529 main>>>905 一边调代码...530 main>>>906 一边调代码...531 main>>>907 一边调代码...532 main>>>908 一边调代码...533 main>>>909 一边调代码...534 main>>>910 一边调代码...535 main>>>911 一边调代码...536 main>>>912 一边调代码...537 main>>>913 一边调代码...538 main>>>914 一边调代码...539 main>>>915 一边调代码...540 main>>>916 一边调代码...541 main>>>917 一边调代码...542 main>>>918 main>>>919 main>>>920 main>>>921 main>>>922 main>>>923 main>>>924 一边调代码...543 main>>>925 一边调代码...544 一边调代码...545 一边调代码...546 main>>>926 一边调代码...547 一边调代码...548 main>>>927 一边调代码...549 main>>>928 main>>>929 main>>>930 一边调代码...550 main>>>931 一边调代码...551 main>>>932 一边调代码...552 main>>>933 一边调代码...553 main>>>934 一边调代码...554 main>>>935 一边调代码...555 main>>>936 一边调代码...556 一边调代码...557 一边调代码...558 一边调代码...559 main>>>937 一边调代码...560 main>>>938 一边调代码...561 main>>>939 main>>>940 main>>>941 main>>>942 main>>>943 main>>>944 main>>>945 main>>>946 main>>>947 main>>>948 main>>>949 main>>>950 main>>>951 main>>>952 main>>>953 main>>>954 main>>>955 main>>>956 main>>>957 main>>>958 main>>>959 main>>>960 main>>>961 一边调代码...562 main>>>962 一边调代码...563 main>>>963 一边调代码...564 main>>>964 一边调代码...565 main>>>965 一边调代码...566 main>>>966 一边调代码...567 main>>>967 一边调代码...568 main>>>968 一边调代码...569 main>>>969 一边调代码...570 main>>>970 一边调代码...571 main>>>971 一边调代码...572 main>>>972 一边调代码...573 main>>>973 一边调代码...574 main>>>974 一边调代码...575 main>>>975 一边调代码...576 main>>>976 一边调代码...577 main>>>977 一边调代码...578 main>>>978 一边调代码...579 main>>>979 一边调代码...580 main>>>980 一边调代码...581 main>>>981 一边调代码...582 main>>>982 一边调代码...583 main>>>983 一边调代码...584 main>>>984 一边调代码...585 main>>>985 一边调代码...586 main>>>986 一边调代码...587 main>>>987 一边调代码...588 main>>>988 一边调代码...589 main>>>989 一边调代码...590 main>>>990 一边调代码...591 main>>>991 一边调代码...592 main>>>992 一边调代码...593 main>>>993 main>>>994 main>>>995 main>>>996 一边调代码...594 main>>>997 一边调代码...595 main>>>998 一边调代码...596 main>>>999 一边调代码...597 main>>>1000 一边调代码...598 一边调代码...599 一边调代码...600 一边调代码...601 一边调代码...602 一边调代码...603 一边调代码...604 一边调代码...605 一边调代码...606 一边调代码...607 一边调代码...608 一边调代码...609 一边调代码...610 一边调代码...611 一边调代码...612 一边调代码...613 一边调代码...614 一边调代码...615 一边调代码...616 一边调代码...617 一边调代码...618 一边调代码...619 一边调代码...620 一边调代码...621 一边调代码...622 一边调代码...623 一边调代码...624 一边调代码...625 一边调代码...626 一边调代码...627 一边调代码...628 一边调代码...629 一边调代码...630 一边调代码...631 一边调代码...632 一边调代码...633 一边调代码...634 一边调代码...635 一边调代码...636 一边调代码...637 一边调代码...638 一边调代码...639 一边调代码...640 一边调代码...641 一边调代码...642 一边调代码...643 一边调代码...644 一边调代码...645 一边调代码...646 一边调代码...647 一边调代码...648 一边调代码...649 一边调代码...650 一边调代码...651 一边调代码...652 一边调代码...653 一边调代码...654 一边调代码...655 一边调代码...656 一边调代码...657 一边调代码...658 一边调代码...659 一边调代码...660 一边调代码...661 一边调代码...662 一边调代码...663 一边调代码...664 一边调代码...665 一边调代码...666 一边调代码...667 一边调代码...668 一边调代码...669 一边调代码...670 一边调代码...671 一边调代码...672 一边调代码...673 一边调代码...674 一边调代码...675 一边调代码...676 一边调代码...677 一边调代码...678 一边调代码...679 一边调代码...680 一边调代码...681 一边调代码...682 一边调代码...683 一边调代码...684 一边调代码...685 一边调代码...686 一边调代码...687 一边调代码...688 一边调代码...689 一边调代码...690 一边调代码...691 一边调代码...692 一边调代码...693 一边调代码...694 一边调代码...695 一边调代码...696 一边调代码...697 一边调代码...698 一边调代码...699 一边调代码...700 一边调代码...701 一边调代码...702 一边调代码...703 一边调代码...704 一边调代码...705 一边调代码...706 一边调代码...707 一边调代码...708 一边调代码...709 一边调代码...710 一边调代码...711 一边调代码...712 一边调代码...713 一边调代码...714 一边调代码...715 一边调代码...716 一边调代码...717 一边调代码...718 一边调代码...719 一边调代码...720 一边调代码...721 一边调代码...722 一边调代码...723 一边调代码...724 一边调代码...725 一边调代码...726 一边调代码...727 一边调代码...728 一边调代码...729 一边调代码...730 一边调代码...731 一边调代码...732 一边调代码...733 一边调代码...734 一边调代码...735 一边调代码...736 一边调代码...737 一边调代码...738 一边调代码...739 一边调代码...740 一边调代码...741 一边调代码...742 一边调代码...743 一边调代码...744 一边调代码...745 一边调代码...746 一边调代码...747 一边调代码...748 一边调代码...749 一边调代码...750 一边调代码...751 一边调代码...752 一边调代码...753 一边调代码...754 一边调代码...755 一边调代码...756 一边调代码...757 一边调代码...758 一边调代码...759 一边调代码...760 一边调代码...761 一边调代码...762 一边调代码...763 一边调代码...764 一边调代码...765 一边调代码...766 一边调代码...767 一边调代码...768 一边调代码...769 一边调代码...770 一边调代码...771 一边调代码...772 一边调代码...773 一边调代码...774 一边调代码...775 一边调代码...776 一边调代码...777 一边调代码...778 一边调代码...779 一边调代码...780 一边调代码...781 一边调代码...782 一边调代码...783 一边调代码...784 一边调代码...785 一边调代码...786 一边调代码...787 一边调代码...788 一边调代码...789 一边调代码...790 一边调代码...791 一边调代码...792 一边调代码...793 一边调代码...794 一边调代码...795 一边调代码...796 一边调代码...797 一边调代码...798 一边调代码...799 一边调代码...800 一边调代码...801 一边调代码...802 一边调代码...803 一边调代码...804 一边调代码...805 一边调代码...806 一边调代码...807 一边调代码...808 一边调代码...809 一边调代码...810 一边调代码...811 一边调代码...812 一边调代码...813 一边调代码...814 一边调代码...815 一边调代码...816 一边调代码...817 一边调代码...818 一边调代码...819 一边调代码...820 一边调代码...821 一边调代码...822 一边调代码...823 一边调代码...824 一边调代码...825 一边调代码...826 一边调代码...827 一边调代码...828 一边调代码...829 一边调代码...830 一边调代码...831 一边调代码...832 一边调代码...833 一边调代码...834 一边调代码...835 一边调代码...836 一边调代码...837 一边调代码...838 一边调代码...839 一边调代码...840 一边调代码...841 一边调代码...842 一边调代码...843 一边调代码...844 一边调代码...845 一边调代码...846 一边调代码...847 一边调代码...848 一边调代码...849 一边调代码...850 一边调代码...851 一边调代码...852 一边调代码...853 一边调代码...854 一边调代码...855 一边调代码...856 一边调代码...857 一边调代码...858 一边调代码...859 一边调代码...860 一边调代码...861 一边调代码...862 一边调代码...863 一边调代码...864 一边调代码...865 一边调代码...866 一边调代码...867 一边调代码...868 一边调代码...869 一边调代码...870 一边调代码...871 一边调代码...872 一边调代码...873 一边调代码...874 一边调代码...875 一边调代码...876 一边调代码...877 一边调代码...878 一边调代码...879 一边调代码...880 一边调代码...881 一边调代码...882 一边调代码...883 一边调代码...884 一边调代码...885 一边调代码...886 一边调代码...887 一边调代码...888 一边调代码...889 一边调代码...890 一边调代码...891 一边调代码...892 一边调代码...893 一边调代码...894 一边调代码...895 一边调代码...896 一边调代码...897 一边调代码...898 一边调代码...899 一边调代码...900 一边调代码...901 一边调代码...902 一边调代码...903 一边调代码...904 一边调代码...905 一边调代码...906 一边调代码...907 一边调代码...908 一边调代码...909 一边调代码...910 一边调代码...911 一边调代码...912 一边调代码...913 一边调代码...914 一边调代码...915 一边调代码...916 一边调代码...917 一边调代码...918 一边调代码...919 一边调代码...920 一边调代码...921 一边调代码...922 一边调代码...923 一边调代码...924 一边调代码...925 一边调代码...926 一边调代码...927 一边调代码...928 一边调代码...929 一边调代码...930 一边调代码...931 一边调代码...932 一边调代码...933 一边调代码...934 一边调代码...935 一边调代码...936 一边调代码...937 一边调代码...938 一边调代码...939 一边调代码...940 一边调代码...941 一边调代码...942 一边调代码...943 一边调代码...944 一边调代码...945 一边调代码...946 一边调代码...947 一边调代码...948 一边调代码...949 一边调代码...950 一边调代码...951 一边调代码...952 一边调代码...953 一边调代码...954 一边调代码...955 一边调代码...956 一边调代码...957 一边调代码...958 一边调代码...959 一边调代码...960 一边调代码...961 一边调代码...962 一边调代码...963 一边调代码...964 一边调代码...965 一边调代码...966 一边调代码...967 一边调代码...968 一边调代码...969 一边调代码...970 一边调代码...971 一边调代码...972 一边调代码...973 一边调代码...974 一边调代码...975 一边调代码...976 一边调代码...977 一边调代码...978 一边调代码...979 一边调代码...980 一边调代码...981 一边调代码...982 一边调代码...983 一边调代码...984 一边调代码...985 一边调代码...986 一边调代码...987 一边调代码...988 一边调代码...989 一边调代码...990 一边调代码...991 一边调代码...992 一边调代码...993 一边调代码...994 一边调代码...995 一边调代码...996 一边调代码...997 一边调代码...998 一边调代码...999 一边调代码...1000
示例:模拟三个12360用户抢票
package edu.aeon.thread; /** * [说明]模拟三个黄牛在12306抢票过程 * @author lzj * */ public class Web12306 implements Runnable { //这里12306只剩下100张票 private int num=100; @Override public void run() { while(true){ if(num<1){ break; } System.out.println(Thread.currentThread().getName()+"抢票成功!票码为:"+num--); } } }
测试类:
package edu.aeon.thread; /** * 12306抢票测试类 * @author lzj * */ class Web12306App { public static void main(String[] args) { //真实角色 Web12306 web=new Web12306(); //代理角色 Thread t1=new Thread(web, "黄牛1"); Thread t2=new Thread(web, "黄牛2"); Thread t3=new Thread(web, "黄牛3"); t1.start(); t2.start(); t3.start(); } }
测试结果:
黄牛1抢票成功!票码为:100 黄牛3抢票成功!票码为:99 黄牛3抢票成功!票码为:97 黄牛3抢票成功!票码为:96 黄牛2抢票成功!票码为:95 黄牛2抢票成功!票码为:93 黄牛2抢票成功!票码为:92 黄牛2抢票成功!票码为:91 黄牛2抢票成功!票码为:90 黄牛2抢票成功!票码为:89 黄牛1抢票成功!票码为:98 黄牛2抢票成功!票码为:88 黄牛3抢票成功!票码为:94 黄牛3抢票成功!票码为:85 黄牛3抢票成功!票码为:84 黄牛3抢票成功!票码为:83 黄牛3抢票成功!票码为:82 黄牛3抢票成功!票码为:81 黄牛3抢票成功!票码为:80 黄牛3抢票成功!票码为:79 黄牛3抢票成功!票码为:78 黄牛3抢票成功!票码为:77 黄牛3抢票成功!票码为:76 黄牛3抢票成功!票码为:75 黄牛3抢票成功!票码为:74 黄牛3抢票成功!票码为:73 黄牛3抢票成功!票码为:72 黄牛3抢票成功!票码为:71 黄牛3抢票成功!票码为:70 黄牛3抢票成功!票码为:69 黄牛3抢票成功!票码为:68 黄牛2抢票成功!票码为:86 黄牛1抢票成功!票码为:87 黄牛2抢票成功!票码为:66 黄牛3抢票成功!票码为:67 黄牛2抢票成功!票码为:64 黄牛1抢票成功!票码为:65 黄牛1抢票成功!票码为:61 黄牛1抢票成功!票码为:60 黄牛1抢票成功!票码为:59 黄牛1抢票成功!票码为:58 黄牛1抢票成功!票码为:57 黄牛1抢票成功!票码为:56 黄牛2抢票成功!票码为:62 黄牛2抢票成功!票码为:54 黄牛2抢票成功!票码为:53 黄牛3抢票成功!票码为:63 黄牛3抢票成功!票码为:51 黄牛3抢票成功!票码为:50 黄牛3抢票成功!票码为:49 黄牛3抢票成功!票码为:48 黄牛3抢票成功!票码为:47 黄牛3抢票成功!票码为:46 黄牛3抢票成功!票码为:45 黄牛3抢票成功!票码为:44 黄牛3抢票成功!票码为:43 黄牛3抢票成功!票码为:42 黄牛3抢票成功!票码为:41 黄牛3抢票成功!票码为:40 黄牛3抢票成功!票码为:39 黄牛3抢票成功!票码为:38 黄牛3抢票成功!票码为:37 黄牛3抢票成功!票码为:36 黄牛3抢票成功!票码为:35 黄牛3抢票成功!票码为:34 黄牛3抢票成功!票码为:33 黄牛3抢票成功!票码为:32 黄牛3抢票成功!票码为:31 黄牛3抢票成功!票码为:30 黄牛3抢票成功!票码为:29 黄牛3抢票成功!票码为:28 黄牛3抢票成功!票码为:27 黄牛3抢票成功!票码为:26 黄牛3抢票成功!票码为:25 黄牛3抢票成功!票码为:24 黄牛3抢票成功!票码为:23 黄牛3抢票成功!票码为:22 黄牛3抢票成功!票码为:21 黄牛3抢票成功!票码为:20 黄牛3抢票成功!票码为:19 黄牛3抢票成功!票码为:18 黄牛3抢票成功!票码为:17 黄牛3抢票成功!票码为:16 黄牛3抢票成功!票码为:15 黄牛3抢票成功!票码为:14 黄牛3抢票成功!票码为:13 黄牛3抢票成功!票码为:12 黄牛3抢票成功!票码为:11 黄牛2抢票成功!票码为:52 黄牛1抢票成功!票码为:55 黄牛1抢票成功!票码为:8 黄牛1抢票成功!票码为:7 黄牛1抢票成功!票码为:6 黄牛1抢票成功!票码为:5 黄牛1抢票成功!票码为:4 黄牛1抢票成功!票码为:3 黄牛1抢票成功!票码为:2 黄牛1抢票成功!票码为:1 黄牛2抢票成功!票码为:9 黄牛3抢票成功!票码为:10
两种多线程创建方式的比较:
我们都知道在java中一个类是单继承、多实现、通过第二种方式可避免创建线程的局限性