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

Java多線程實例

 更新時間:2015年11月11日 11:56:00   投稿:mrr  
本文給大家介紹java多線程實例,對java多線程知識感興趣的朋友參考下吧

在上篇文章給大家介紹了java多線程的實現(xiàn)方式,通過本文給大家介紹java多線程實例,對java多線程感興趣的朋友一起學(xué)習(xí)吧

首先給大家說下多線程的優(yōu)缺點

多線程的優(yōu)點:

1)資源利用率更好
2)程序設(shè)計在某些情況下更簡單
3)程序響應(yīng)更快

多線程的代價:

1)設(shè)計更復(fù)雜

雖然有一些多線程應(yīng)用程序比單線程的應(yīng)用程序要簡單,但其他的一般都更復(fù)雜。在多線程訪問共享數(shù)據(jù)的時候,這部分代碼需要特別的注意。線程之間的交互往往非常復(fù)雜。不正確的線程同步產(chǎn)生的錯誤非常難以被發(fā)現(xiàn),并且重現(xiàn)以修復(fù)。

2)上下文切換的開銷

當(dāng)CPU從執(zhí)行一個線程切換到執(zhí)行另外一個線程的時候,它需要先存儲當(dāng)前線程的本地的數(shù)據(jù),程序指針等,然后載入另一個線程的本地數(shù)據(jù),程序指針等,最后才開始執(zhí)行。這種切換稱為“上下文切換”(“context switch”)。CPU會在一個上下文中執(zhí)行一個線程,然后切換到另外一個上下文中執(zhí)行另外一個線程。上下文切換并不廉價。如果沒有必要,應(yīng)該減少上下文切換的發(fā)生。

定義和啟動線程主要有兩個關(guān)鍵技術(shù):

第一:線程類必須實現(xiàn)java.lang.Runnable接口或者繼承java.lang.Thread類,并且都要實現(xiàn)run方法,其中run方法沒有輸入,沒有輸出,也無異常。

第二:調(diào)用Thread類的start方法啟動線程,當(dāng)獲得cpu資源后,start方法自動調(diào)用線程run方法開始運行。

package test;
import java.util.Vector;
import java.util.Date;
/**
 * 線程測試實例
 * @author 靜止的流水
 *
 */
public class Threadnew
{
 /**
 * 
 * @author 靜止的流水
 *
 */
class ThreadA extends Thread
{
 private Date runtime;
 public void run()
 {
 System.out.println("ThreadA begin.");
 this.runtime = new Date();
 System.out.println("ThreadA end.");
 }
 }
/**
 * 
 * @author 靜止的流水
 *
 */
class ThreadB implements Runnable
{
 private Date runtime;
 public void run()
 {
 System.out.println("ThreadB begin.");
 this.runtime = new Date();
 System.out.println("ThreadB end.");
 }
 }
/**
 * 
 *
 */
public void starta()
{
 Thread threada = new ThreadA();
 threada.start();
}
/**
 * 
 *
 */
public void startb()
{
 Runnable threadb = new ThreadB();
 Thread thread = new Thread(threadb);
 thread.start();
 }
/**
 * 
 * @param args
 */
public static void main(String[] args)
{
 Threadnew test = new Threadnew();
 test.starta();
 test.startb();
}
}

相關(guān)文章

  • Windows10下的超詳細Java安裝全過程

    Windows10下的超詳細Java安裝全過程

    文章主要介紹了如何在Windows?10系統(tǒng)下安裝Java開發(fā)工具包(JDK),包括Java的下載與安裝步驟以及Java環(huán)境的配置方法,最后通過命令行驗證Java環(huán)境是否配置成功
    2025-01-01
  • Gradle環(huán)境下導(dǎo)出Swagger為PDF的步驟詳解

    Gradle環(huán)境下導(dǎo)出Swagger為PDF的步驟詳解

    這篇文章主要介紹了Gradle環(huán)境下導(dǎo)出Swagger為PDF的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Spring配置類源碼分析詳解

    Spring配置類源碼分析詳解

    這篇文章主要介紹了Spring配置類解析源碼解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • Spring Boot 應(yīng)用程序中配置使用consul的方法

    Spring Boot 應(yīng)用程序中配置使用consul的方法

    配置是 Spring Boot 應(yīng)用程序中的一部分,主要用于配置服務(wù)端口、應(yīng)用名稱、Consul 服務(wù)發(fā)現(xiàn)以及健康檢查等功能,下面給大家介紹Spring Boot 應(yīng)用程序中配置使用consul,感興趣的朋友一起看看吧
    2025-04-04
  • Java中Logger定義的3種方式及最佳實踐

    Java中Logger定義的3種方式及最佳實踐

    這篇文章主要介紹了Java中三種常見的Logger定義方式及其優(yōu)缺點,同時文章還討論了Logger的命名和訪問修飾符的最佳實踐,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-02-02
  • spring boot aop 記錄方法執(zhí)行時間代碼示例

    spring boot aop 記錄方法執(zhí)行時間代碼示例

    這篇文章主要介紹了spring boot aop 記錄方法執(zhí)行時間代碼示例,分享了相關(guān)代碼,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • SpringBoot 多Profile使用與切換方式

    SpringBoot 多Profile使用與切換方式

    這篇文章主要介紹了SpringBoot 多Profile使用與切換方式,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 新手學(xué)習(xí)JQuery基本操作和使用案例解析

    新手學(xué)習(xí)JQuery基本操作和使用案例解析

    這篇文章主要介紹了新手學(xué)習(xí)JQuery基本操作和使用案例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • SpringBoot下載文件的實現(xiàn)及速度對比

    SpringBoot下載文件的實現(xiàn)及速度對比

    這篇文章主要介紹了SpringBoot下載文件的實現(xiàn)及速度對比,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • springboot config 攔截器使用方法實例詳解

    springboot config 攔截器使用方法實例詳解

    本文介紹Spring-Boot中使用攔截器的相關(guān)知識,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-05-05

最新評論

同仁县| 荃湾区| 靖边县| 车致| 灌云县| 涪陵区| 蒙山县| 遵义市| 子长县| 天柱县| 河南省| 焦作市| 四子王旗| 盘山县| 抚顺县| 曲松县| 莱阳市| 西宁市| 苍南县| 弥渡县| 烟台市| 裕民县| 林口县| 永善县| 太仆寺旗| 深水埗区| 长汀县| 边坝县| 东丽区| 赣州市| 岚皋县| 大厂| 巴彦县| 荣成市| 大厂| 滁州市| 封开县| 富蕴县| 河间市| 库车县| 永胜县|