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

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

實現Runnable接口和繼承Thread類區別

2019-11-11 03:11:20
字體:
來源:轉載
供稿:網友

如果一個類繼承Thread,則不適合資源共享。但是如果實現了Runable接口的話,則很容易的實現資源共享。

實現Runnable接口比繼承Thread類所具有的優勢:

1):適合多個相同的程序代碼的線程去處理同一個資源

2):可以避免java中的單繼承的限制

3):增加程序的健壯性,代碼可以被多個線程共享,代碼和數據獨立

直接看代碼:

1、繼承Thread的demo

package com.multithread.learning;/** *多線程學習,繼承Thread,資源不能共享 *@author */class Thread1 extends Thread{	PRivate int count=5;	private String name;    public Thread1(String name) {       this.name=name;    }	public void run() {        for (int i = 0; i < 5; i++) {            System.out.println(name + "運行  count= " + count--);            try {                sleep((int) Math.random() * 10);            } catch (InterruptedException e) {                e.printStackTrace();            }        }       	}}public class Main {	public static void main(String[] args) {		Thread1 mTh1=new Thread1("A");		Thread1 mTh2=new Thread1("B");		mTh1.start();		mTh2.start();	}}2、實現Runnable的demo
/** *多線程學習 實現runnable,資源能共享 *@author  */package com.multithread.runnable;class Thread2 implements Runnable{    private int count=15;	@Override	public void run() {		  for (int i = 0; i < 5; i++) {			  System.out.println(Thread.currentThread().getName() + "運行  count= " + count--);	            try {	            	Thread.sleep((int) Math.random() * 10);	            } catch (InterruptedException e) {	                e.printStackTrace();	            }	        }	}	}public class Main {	public static void main(String[] args) {		Thread2 mTh = new Thread2();	        new Thread(mTh, "C").start();//同一個mTh,但是在Thread中就不可以,如果用同一個實例化對象mt,就會出現異常   	        new Thread(mTh, "D").start();	        new Thread(mTh, "E").start();	}}
//這里要注意每個線程都是用同一個實例化對象,如果不是同一個,效果就和上面的一樣了!

提醒一下大家:main方法其實也是一個線程。在java中所有的線程都是同時啟動的,至于什么時候,哪個先執行,完全看誰先得到CPU的資源。

在java中,每次程序運行至少啟動2個線程。一個是main線程,一個是垃圾收集線程。因為每當使用java命令執行一個類的時候,實際上都會啟動一個jvm,每一個jvm實際上就是在操作系統中啟動了一個進程。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 景泰县| 大关县| 惠安县| 万载县| 云和县| 连云港市| 海晏县| 丰原市| 清丰县| 香格里拉县| 旬邑县| 德江县| 万载县| 阳高县| 比如县| 衡南县| 敦化市| 景洪市| 晋江市| 天峨县| 邢台市| 政和县| 文化| 招远市| 玉林市| 奇台县| 图木舒克市| 嘉黎县| 禹州市| 景谷| 库尔勒市| 花莲市| 文山县| 榕江县| 威宁| 吕梁市| 额尔古纳市| 鹤岗市| 连云港市| 石家庄市| 湘乡市|