亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)文章

  • 深入C++ typedef的用法總結(jié)(必看)

    深入C++ typedef的用法總結(jié)(必看)

    本篇文章是對C++中typedef的用法進行了詳細的總結(jié)分析,需要的朋友參考下
    2013-05-05
  • 詳解SpringBoot中Controller接收對象列表實現(xiàn)

    詳解SpringBoot中Controller接收對象列表實現(xiàn)

    這篇文章主要介紹了詳解SpringBoot中Controller接收對象列表實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • redis實現(xiàn)多進程數(shù)據(jù)同步工具代碼分享

    redis實現(xiàn)多進程數(shù)據(jù)同步工具代碼分享

    這篇文章主要介紹了使用redis實現(xiàn)多進程數(shù)據(jù)同步工具的代碼,大家參考使用吧
    2014-01-01
  • Java_Spring之XML?的?AOP?配置

    Java_Spring之XML?的?AOP?配置

    這篇文章主要介紹了Java_Spring中基于XML的AOP配置,上篇講到的是基于注解的AOP配置,對XML感興趣的同學(xué)可以參考閱讀本文
    2023-04-04
  • 詳解Spring Boot 項目中的 parent

    詳解Spring Boot 項目中的 parent

    這篇文章主要介紹了Spring Boot中parent作用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • java中加密的實現(xiàn)方法(MD5,MD2,SHA)

    java中加密的實現(xiàn)方法(MD5,MD2,SHA)

    這篇文章主要介紹了java中加密的實現(xiàn)方法(MD5,MD2,SHA)的相關(guān)資料,這里提供三種實現(xiàn)加密的方法,大家可以對比一下,需要的朋友可以參考下
    2017-08-08
  • 在MyBatis中使用 # 和 $ 書寫占位符的區(qū)別說明

    在MyBatis中使用 # 和 $ 書寫占位符的區(qū)別說明

    這篇文章主要介紹了在MyBatis中使用 # 和 $ 書寫占位符的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 快速了解Hibernate中的Session

    快速了解Hibernate中的Session

    這篇文章主要介紹了快速了解Hibernate中的Session,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Java日常練習(xí)題,每天進步一點點(39)

    Java日常練習(xí)題,每天進步一點點(39)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • SpringBoot 開發(fā)提速神器 Lombok+MybatisPlus+SwaggerUI

    SpringBoot 開發(fā)提速神器 Lombok+MybatisPlus+SwaggerUI

    這篇文章主要介紹了SpringBoot 開發(fā)提速神器 Lombok+MybatisPlus+SwaggerUI,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03

最新評論