国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java創建線程

2019-11-14 15:02:11
字體:
來源:轉載
供稿:網友

一.繼承Thread類

為創建一個線程,最簡單的方法就是從Thread類繼承。這個類包含了創建和運行線程所需的一切東西。Thread類最重要的方法是run(),但為了使用run(),必須對其進行重寫。因此,run()屬于那些會與程序中的其他線程“并發”或“同時”執行的代碼。下面的例子是繼承Thread類的一個簡單實現。

java程序如下:

public class SimpleThread extends Thread {	PRivate int countDown = 5;	private int threadNumber;	private static int threadCount = 0;	/**	 * 為每個線程分配一個編號	 */	public SimpleThread() {		threadNumber = ++threadCount;		System.out.println("Making Thread" + threadNumber);	}	/**	 * 從5到1進行計數	 */	@Override	public void run() {		while (true) {			System.out.println("Thread" + threadNumber + ":" + countDown);			if (--countDown == 0) {				return;			}		}	}	public static void main(String[] args) {		for (int i = 0; i < 5; i++) {			new SimpleThread().start();		}	}}

執行結果如下:

Making Thread1
Making Thread2
Making Thread3
Making Thread4
Making Thread5
Thread3:5
Thread3:4
Thread3:3
Thread3:2
Thread1:5
Thread3:1
Thread1:4
Thread1:3
Thread1:2
Thread1:1
Thread4:5
Thread4:4
Thread4:3
Thread4:2
Thread5:5
Thread5:4
Thread5:3
Thread5:2
Thread5:1
Thread2:5
Thread2:4
Thread2:3
Thread2:2
Thread2:1
Thread4:1

在main()方法中,可看到創建并運行了大量線程。Thread包含了一個特殊的方法叫做start(),它的作用是對線程進行特殊的初始化,然后調用run()。如果不調用start(),線程便永遠不會啟動。

二.實現Runnable接口

在實際開發中,一個多線程的操作很少使用Thread類,而是通過Runnable接口完成。示例如下:

java代碼如下:

public class SimpleThread implements Runnable {	private int countDown = 10;		/**	 * 從10到1進行計數	 */	@Override	public void run() {		while (true) {			synchronized(this) {				if (countDown > 0) {					System.out.println(Thread.currentThread().getName() + ":" + countDown--);				} else {					return;				}								try {					Thread.sleep(100);				} catch (InterruptedException e) {					e.printStackTrace();				}			}		}	}	public static void main(String[] args) {		SimpleThread sd = new SimpleThread();		for (int i = 0; i < 3; i++) {			new Thread(sd).start();		}	}}

執行結果如下:

Thread-0:10
Thread-2:9
Thread-2:8
Thread-1:7
Thread-2:6
Thread-2:5
Thread-2:4
Thread-2:3
Thread-2:2
Thread-2:1

兩種實現方式的區別和聯系

在程序開發中只要是多線程肯定永遠以實現Runnable接口為主,因為實現Runnable接口相比繼承Thread類有如下好處:

  • 避免點繼承的局限,一個類可以繼承多個接口。
  • 適合于資源的共享

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盐边县| 洛隆县| 壶关县| 通江县| 汝州市| 和林格尔县| 九江市| 独山县| 红桥区| 调兵山市| 南江县| 益阳市| 策勒县| 天气| 若羌县| 沙洋县| 米脂县| 安乡县| 库尔勒市| 盈江县| 平远县| 宁蒗| 湘潭县| 陇西县| 庆云县| 永兴县| 郸城县| 金阳县| 思茅市| 卫辉市| 镶黄旗| 交口县| 五台县| 板桥市| 清徐县| 界首市| 兴文县| 华池县| 乐山市| 维西| 衡南县|