欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實(shí)現(xiàn)多線(xiàn)程的兩種方式繼承Thread類(lèi)和實(shí)現(xiàn)Runnable接口的方法

 更新時(shí)間:2016年09月30日 11:01:10   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇java實(shí)現(xiàn)多線(xiàn)程的兩種方式繼承Thread類(lèi)和實(shí)現(xiàn)Runnable接口的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

實(shí)現(xiàn)方式和繼承方式有什么區(qū)別呢?

*區(qū)別:

*繼承Thread:線(xiàn)程代碼存放在Thread子類(lèi)run方法中

*實(shí)現(xiàn)Runnable:線(xiàn)程代碼存放在接口的子類(lèi)的run方法中

*實(shí)現(xiàn)方式的好處:避免了單繼承的局限性

*在定義線(xiàn)程時(shí),建議使用實(shí)現(xiàn)方式,當(dāng)然如果一個(gè)類(lèi)沒(méi)有繼承父類(lèi),那么也可以通過(guò)繼承Thread類(lèi)來(lái)實(shí)現(xiàn)多線(xiàn)程

*注意:Runnable接口沒(méi)有拋出異常,那么實(shí)現(xiàn)它的類(lèi)只能是try-catch不能throws

*Java對(duì)多線(xiàn)程的安全問(wèn)題提供了專(zhuān)業(yè)的解決方式就是同步代碼塊synchronized(對(duì)象){需要同步的代碼}

*同步的前提:

*1.有2個(gè)及以上的線(xiàn)程

*2.多個(gè)線(xiàn)程使用用一個(gè)鎖(對(duì)象)

*同步的好處:解決了多線(xiàn)程的安全問(wèn)題

*同步的弊端:多個(gè)線(xiàn)程需要判斷鎖,較為消耗資源

package 多線(xiàn)程;

class Ticket implements Runnable
{
//	private static int tick = 100;
	private int tick=100;
	Object obj = new Object();//創(chuàng)建一個(gè)對(duì)象或者自己重新寫(xiě)一個(gè)類(lèi)來(lái)創(chuàng)建一個(gè)對(duì)象下面同步關(guān)鍵字需要用到
	@Override
	public void run() 
	{
		while(true)
		{
			synchronized(obj)
//			synchronized(this)
			{
			if(tick>0){
				try {Thread.sleep(10);} catch (Exception e) {	}
				System.out.println(Thread.currentThread().getName()+"...銷(xiāo)售:"+(tick--)+"號(hào)票");
//				tick--;
			}else {
				break;
			}
			}
		}
	}
	
}
public class Test 
{
	public static void main(String[] args) 
	{
		Ticket t = new Ticket();//創(chuàng)建一個(gè)實(shí)現(xiàn)了Runnable接口的類(lèi)
		
		//創(chuàng)建4個(gè)多線(xiàn)程對(duì)象并傳遞上面接口對(duì)象給其構(gòu)造方法
		Thread t1 = new Thread(t);//創(chuàng)建了一個(gè)線(xiàn)程
		Thread t2 = new Thread(t);//創(chuàng)建了一個(gè)線(xiàn)程
		Thread t3 = new Thread(t);//創(chuàng)建了一個(gè)線(xiàn)程
		Thread t4 = new Thread(t);//創(chuàng)建了一個(gè)線(xiàn)程
		
		//開(kāi)啟線(xiàn)程
		t1.start();
		t2.start();
		t3.start();
		t4.start();
	}
}

以上就是小編為大家?guī)?lái)的java實(shí)現(xiàn)多線(xiàn)程的兩種方式繼承Thread類(lèi)和實(shí)現(xiàn)Runnable接口的方法的全部?jī)?nèi)容了,希望對(duì)大家有所幫助,多多支持腳本之家~

相關(guān)文章

  • SpringBoot + SpringSecurity 短信驗(yàn)證碼登錄功能實(shí)現(xiàn)

    SpringBoot + SpringSecurity 短信驗(yàn)證碼登錄功能實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot + SpringSecurity 短信驗(yàn)證碼登錄功能實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Java?Maven構(gòu)建工具中mvnd和Gradle誰(shuí)更快

    Java?Maven構(gòu)建工具中mvnd和Gradle誰(shuí)更快

    這篇文章主要介紹了Java?Maven構(gòu)建工具中mvnd和Gradle誰(shuí)更快,mvnd?是?Maven?Daemon?的縮寫(xiě)?,翻譯成中文就是?Maven?守護(hù)進(jìn)程,下文更多相關(guān)資料,需要的小伙伴可以參考一下
    2022-05-05
  • Java中的Comparable和Comparator接口

    Java中的Comparable和Comparator接口

    這篇文章主要介紹了Java中的Comparable和Comparator接口,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容戒殺,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • SpringBoot配置文件、多環(huán)境配置、讀取配置的4種實(shí)現(xiàn)方式

    SpringBoot配置文件、多環(huán)境配置、讀取配置的4種實(shí)現(xiàn)方式

    SpringBoot支持多種配置文件位置和格式,其中application.properties和application.yml是默認(rèn)加載的文件,配置文件可以根據(jù)環(huán)境通過(guò)spring.profiles.active屬性進(jìn)行區(qū)分,命令行參數(shù)具有最高優(yōu)先級(jí),可覆蓋其他所有配置
    2024-09-09
  • 一篇文章帶你初步認(rèn)識(shí)Maven

    一篇文章帶你初步認(rèn)識(shí)Maven

    這篇文章主要為大家初步認(rèn)識(shí)了Maven,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • SpringBoot?@RestControllerAdvice注解對(duì)返回值統(tǒng)一封裝的處理方法

    SpringBoot?@RestControllerAdvice注解對(duì)返回值統(tǒng)一封裝的處理方法

    這篇文章主要介紹了SpringBoot?@RestControllerAdvice注解對(duì)返回值統(tǒng)一封裝,使用@RestControllerAdvice對(duì)響應(yīng)進(jìn)行增強(qiáng),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • 解決SpringBoot整合ElasticSearch遇到的連接問(wèn)題

    解決SpringBoot整合ElasticSearch遇到的連接問(wèn)題

    這篇文章主要介紹了解決SpringBoot整合ElasticSearch遇到的連接問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 解決Jackson解析嵌套類(lèi)問(wèn)題(MismatchedInputException)

    解決Jackson解析嵌套類(lèi)問(wèn)題(MismatchedInputException)

    這篇文章主要介紹了解決Jackson解析嵌套類(lèi)問(wèn)題(MismatchedInputException),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Springboot實(shí)現(xiàn)全局自定義異常的方法詳解

    Springboot實(shí)現(xiàn)全局自定義異常的方法詳解

    這篇文章主要介紹了Springboot實(shí)現(xiàn)全局自定義異常的方法詳解,SpringBoot的項(xiàng)目已經(jīng)對(duì)有一定的異常處理了,但是對(duì)于我們開(kāi)發(fā)者而言可能就不太合適了,因此我們需要對(duì)這些異常進(jìn)行統(tǒng)一的捕獲并處理,需要的朋友可以參考下
    2023-11-11
  • RabbitMQ開(kāi)啟SSL與SpringBoot連接測(cè)試的配置方法

    RabbitMQ開(kāi)啟SSL與SpringBoot連接測(cè)試的配置方法

    本文基于 CentOS 7 + Git + OpenSSL + yum 安裝的 RabbitMQ,需要讀者提交安裝好。其他方式也可變通參考本文。對(duì)RabbitMQ開(kāi)啟SSL與SpringBoot連接測(cè)試相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-01-01

最新評(píng)論