1. 程式人生 > >JAVA實現多線程入門

JAVA實現多線程入門

對象 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實現多線程入門