最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

*區(qū)別:

*繼承Thread:線程代碼存放在Thread子類run方法中

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

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

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

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

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

*同步的前提:

*1.有2個及以上的線程

*2.多個線程使用用一個鎖(對象)

*同步的好處:解決了多線程的安全問題

*同步的弊端:多個線程需要判斷鎖,較為消耗資源

package 多線程;

class Ticket implements Runnable
{
//	private static int tick = 100;
	private int tick=100;
	Object obj = new Object();//創(chuàng)建一個對象或者自己重新寫一個類來創(chuàng)建一個對象下面同步關(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()+"...銷售:"+(tick--)+"號票");
//				tick--;
			}else {
				break;
			}
			}
		}
	}
	
}
public class Test 
{
	public static void main(String[] args) 
	{
		Ticket t = new Ticket();//創(chuàng)建一個實現(xiàn)了Runnable接口的類
		
		//創(chuàng)建4個多線程對象并傳遞上面接口對象給其構(gòu)造方法
		Thread t1 = new Thread(t);//創(chuàng)建了一個線程
		Thread t2 = new Thread(t);//創(chuàng)建了一個線程
		Thread t3 = new Thread(t);//創(chuàng)建了一個線程
		Thread t4 = new Thread(t);//創(chuàng)建了一個線程
		
		//開啟線程
		t1.start();
		t2.start();
		t3.start();
		t4.start();
	}
}

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

相關(guān)文章

  • java語言求解兔子問題代碼分析

    java語言求解兔子問題代碼分析

    這篇文章主要介紹了Java語言求解兔子問題代碼分析,具有一定借鑒價值,需要的朋友可以了解下。
    2017-12-12
  • Mybatis集成到Spring容器的詳細(xì)步驟

    Mybatis集成到Spring容器的詳細(xì)步驟

    在現(xiàn)在的JavaEE開發(fā)過程中,我們經(jīng)常會使用到Spring+SpringMVC+Mybatis這個組合,那么Mybatis是如何集成到Spring中的呢,下面通過實例代碼給大家詳細(xì)講解,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • Java集成大模型LangChain4j實戰(zhàn)完全指南(推薦)

    Java集成大模型LangChain4j實戰(zhàn)完全指南(推薦)

    LangChain4j 的目標(biāo)是簡化將大語言模型(LLM - Large Language Model)集成到Java應(yīng)用程序中的過程,本文給大家介紹Java集成大模型LangChain4j實戰(zhàn)完全指南,感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • 基于Spring?Cache實現(xiàn)Caffeine+Redis二級緩存

    基于Spring?Cache實現(xiàn)Caffeine+Redis二級緩存

    本文主要介紹了基于Spring?Cache實現(xiàn)Caffeine+Redis二級緩存,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Spring加載加密的配置文件詳解

    Spring加載加密的配置文件詳解

    這篇文章主要為大家詳細(xì)介紹了Spring加載加密的配置文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Java Synchronize下的volatile關(guān)鍵字詳解

    Java Synchronize下的volatile關(guān)鍵字詳解

    這篇文章主要介紹了Java Synchronize下的volatile關(guān)鍵字詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • springcloud整合到項目中無法啟動報錯Failed to start bean 'eurekaAutoServiceRegistration'

    springcloud整合到項目中無法啟動報錯Failed to start bean&n

    這篇文章主要介紹了springcloud整合到項目中無法啟動報錯Failed to start bean 'eurekaAutoServiceRegistration'問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 如何解決java:錯誤:無效的源發(fā)行版:16

    如何解決java:錯誤:無效的源發(fā)行版:16

    這篇文章主要介紹了如何解決java:錯誤: 無效的源發(fā)行版:16問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java中@DateTimeFormat @JsonFormat失效原因及測試填坑

    Java中@DateTimeFormat @JsonFormat失效原因及測試填坑

    本文主要介紹了Java中@DateTimeFormat @JsonFormat失效原因及測試填坑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • java中"==" 與equals方法的使用

    java中"==" 與equals方法的使用

    本篇文章介紹了,在java中"==" 與equals方法的使用。需要的朋友參考下
    2013-04-04

最新評論

会理县| 五大连池市| 璧山县| 宜宾市| 宝山区| 莱芜市| 西乌| 南部县| 金堂县| 菏泽市| 云南省| 澳门| 阿合奇县| 彝良县| 晋城| 措美县| 呼图壁县| 新和县| 临汾市| 阿图什市| 济宁市| 武乡县| 阳春市| 渝北区| 清原| 高密市| 临洮县| 个旧市| 嵊泗县| 雷波县| 昌黎县| 贞丰县| 汾阳市| 淅川县| 隆尧县| 班戈县| 沛县| 安仁县| 土默特右旗| 平武县| 扎赉特旗|