JAVA實現多線程入門
阿新 • • 發佈:2017-08-30
對象 while gen return nsh end start 通過 err
1:程序員可以在程序中執行多個線程,每一個線程完成一個功能,並於其他線程並發執行,這種機制被稱為多線程
2:實現線程的兩種方法是,分別是繼承java.lang.Thread或者實現java.lang.Runnable接口
3:Thread類是java.lang包中的一個類,從這個類實例化的對象代表線程
4:完成線程真正功能的代碼是放在run()方法中的,當一個類繼承Thread類後,就可以在該類中覆蓋run()方法,將實現該線程功能的代碼寫入run()方法中,然後同時調用Thread 類中的strat()方法執行線程,也就是調用run()方法。
1 package com.thread;
2 /**
3 * 1:程序員可以在程序中執行多個線程,每一個線程完成一個功能,並於其他線程並發執行,這種
4 * 機制被稱為多線程
5 * 2:實現線程的兩種方法是,分別是繼承java.lang.Thread或者實現java.lang.Runnable
6 * 接口
7 * 3:Thread淚時java.lang包中的一個類,從這個類實例化的對象代表線程
8 * 4:完成線程真正功能的代碼是放在run()方法中的,當一個淚繼承Thread類後,就可以
9 * 在該類中覆蓋run()方法,將實現該線程功能的代碼寫入run()方法中,然後同時調用Thread
10 * 類中的strat()方法執行線程,也就是調用run()方法。
11 * @author biexiansheng
12 *
13 */
14 public class ThreadTest extends Thread {//指定類繼承Thread類
15
16 private int count=10;
17 public void run(){//重寫run()方法
18 while(true){
19 System.out.print(count+" ");//打印count變量
20 if(--count==0){//使count變量自減,當自減為0時,退出循環
21 return;
22 }
23 }
24 }
25 public static void main(String[] args) {
26 //new ThreadTest().start();
27 Thread t=new ThreadTest();//兩種方法都可以實現線程運行
28 t.start();
29 }
30 }
示例如下
1 package com.thread;
2 /**
3 * 1:多線程實例練習
4 * @author biexiansheng
5 *
6 */
7 public class ThreadTest1 extends Thread{
8
9 //多線程的實現都是在run()方法中實現的
10 public void run(){
11 System.out.println(getName()+"登上舞臺");
12 int count=0;//定義一個變量
13 while(count<=100){
14 System.out.println(getName()+"登上"+count+"次舞臺");
15 count++;
16 if(count%10==0){
17 try {
18 Thread.sleep(2000);//捕獲異常,休眠2秒
19 } catch (InterruptedException e) {
20 // TODO Auto-generated catch block
21 e.printStackTrace();
22 }//
23 }
24 }
25 System.out.println(getName()+"走下舞臺");
26 }
27 public static void main(String[] args) {
28 // TODO Auto-generated method stub
29 Thread t=new ThreadTest1();
30 t.setName("Mr.Thread");
31 t.start();
32 //new ThreadTest1().start();
33
34 //實現Runnable接口
35 Thread t1=new Thread(new RunnableTest(),"Ms.Runnable");
36 t1.start();
37 }
38 }
39
40 class RunnableTest implements Runnable{
41 //寫完上一句,類名報錯,說明實現一個接口,就要實現這個接口內的方法
42 @Override
43 public void run() {
44 // TODO Auto-generated method stub
45 System.out.println(Thread.currentThread().getName()+"走上了舞臺");
46 //Runnable接口實現getName必須通過線程的currentThread()方法得到
47 int count=0;//定義一個變量
48 while(count<=100){
49 System.out.println(Thread.currentThread().getName()+"登上"+count+"次舞臺");
50 count++;
51 if(count%10==0){
52 try {
53 Thread.sleep(2000);//捕獲異常,休眠2秒
54 } catch (InterruptedException e) {
55 // TODO Auto-generated catch block
56 e.printStackTrace();
57 }//
58 }
59 }
60 System.out.println(Thread.currentThread().getName()+"走下舞臺");
61
62 }
63
64 }
JAVA實現多線程入門