999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關于JAVA的多線程技術

2010-12-31 00:00:00魏曉艷
考試周刊 2010年38期

摘 要: 多線程技術是JAVA應用的主要技術,多線程具有并行機制、交互性能、實時控制等性能。主要的優勢有提高界面程序響應速度和充分利用系統資源。通過使用線程,可以將需要大量時間完成的流程在后臺完成;而通過在一個程序內部同時執行多個流程,可以充分利用CPU等系統資源,從而最大限度地發揮硬件的性能;在現在的項目開發中,多線程編程技術獲得了廣泛的使用。本文從線程概念、屬性、實現方法、優劣勢來介紹JAVA的多線程技術。

關鍵詞: JAVA 多線程技術 屬性 實現方式 優劣勢

一、JAVA概述

JAVA是一種面象對象的、分布式的、解釋的、鍵壯的、安全的、結構中立的、可移植的、多線程的、動態的的語言。

JAVA的設計思想是建立在當前大多數操作系統都實現了線程調度。JAVA虛擬機的很多任務都依賴線程調度,而且所有的類庫都是為多線程設計的。多線程編程的含義是可將程序任務分成幾個并行的子任務。

二、多線程技術

1.線程概述

一般來說,正在計算機中執行的程序叫做“進程”(Process)。所謂“線程”(Thread),是“進程”中某個單一順序的控制流。

最簡單的Applet也是由多個線程來完成的。在JAVA中,任何一個Applet的paint()和update()方法都是由AWT(Abstract Window Toolkit)繪圖與事件處理線程調用的,而Applet主要的方法:init(),start(),stop()和destory()是由執行該Applet的應用調用的。

Unix操作系統和Microsoft Windows操作系統支持多用戶、多進程的并發執行,而JAVA語言支持應用程序進程內部的多個執行線程的并發執行。

在一個多線程程序中,可以分配一個線程來讀取數據,讓另一個線程來處理數據,而讓第三個線程把數據輸送到圖形卡上去。這三個線程可以并行運行。這樣以來,在磁盤讀取數據的同時仍然可以處理數據,從而提高了整體程序的性能。大量的示例程序都可以被設計來同時做兩件事情以進一步提高性能。JAVA虛擬機(JVM)本身就是基于此原因廣泛使用了多線程技術。例如:一個人在處理家務的過程中,將衣服放到洗衣機中自動洗滌后將大米放在電飯鍋里,然后開始做菜,等菜做好了,飯就煮熟了,同時衣服也洗好了。

2.線程屬性

為了正確有效地使用線程,我們必須理解線程的各個方面,并了解JAVA實時系統,必須知道如何提供線程體、線程的生命周期、實時系統如何調度線程、線程組、什么是幽靈線程。

(1)線程體(Thread Body)

所有的操作都發生在線程體中,在JAVA中線程體是從Thread類繼承的run()方法,或實現Runnable接口的類中的run()方法。當線程產生并初始化后,實時系統調用它的run()方法。run()方法內的代碼實現所產生線程的行為,它是線程的主要部分。

(2)線程狀態

①新線程狀態(New Thread)

產生一個Thread對象就生成一個新線程。當線程處于“新線程”狀態時,僅僅是一個空線程對象,它還沒有分配到系統資源。因此只能啟動或終止它。任何其他操作都會引發異常。

②可運行狀態(Runnable)

start()方法產生運行線程所必須的資源,調度線程執行,并且調用線程的run()方法。在這時線程處于可運行態。該狀態不稱為運行態是因為這時的線程并不總是一直占用處理機。特別是對于只有一個處理機的PC而言,任何時刻只能有一個處于可運行態的線程占用處理機。JAVA通過調度來實現多線程對處理機的共享。

③非運行狀態(Not Runnable)

當以下事件發生時,線程進入非運行態。

suspend()方法被調用;

sleep()方法被調用;

線程使用wait()來等待條件變量;

線程處于I/O等待;

死亡態(Dead):當run()方法返回,或別的線程調用stop()方法,線程進入死亡態。

(3)線程的調度

線程調度是JVM對運行的多個線程進行系統級的協調,以避免多個線程爭用有限資源而導致應用系統死機或者崩潰。

JAVA定義了線程的優先級策略。JAVA將線程的優先級分為10個等級,分別用1-10之間的數字表示。數字越大表明線程的級別越高。

為了控制線程的運行策略,JAVA定義了線程調度器來監控系統中處于就緒狀態的所有線程。線程調度器按照線程的優先級決定那個線程投入處理器運行。在多個線程處于就緒狀態的條件下,具有高優先級的線程會在低優先級線程之前得到執行。線程調度器同樣采用“搶占式”策略來調度線程執行,即當前線程執行過程中有較高優先級的線程進入就緒狀態,則高優先級的線程立即被調度執行。具有相同優先級的所有線程采用輪轉的方式來共同分配CPU時間片。

(4)幽靈線程(Demon Thread)

任何一個JAVA線程都能成為幽靈線程。它是作為運行于同一個進程內的對象和線程的服務提供者。幽靈線程是應用中典型的獨立線程。它為同一應用中的其他對象和線程提供服務。幽靈線程的run()方法一般都是無限循環,等待服務請求。

(5)線程組(Thread Group)

每個JAVA線程都是某個線程組的成員。線程組提供一種機制,使得多個線程集于一個對象內,能對它們實行整體操作。當線程產生時,可以指定線程組或由實時系統將其放入某個缺省的線程組內。線程只能屬于一個線程組,并且當線程產生后不能改變它所屬的線程組。

3.線程的實現

JAVA語言實現多線程應用程序的方法,根據多線程應用程序繼承或實現對象的不同可以采用兩種方式:一種是應用程序的并發運行對象直接繼承java的線程類Thread;另一種方式是定義并發執行對象實現Runnable接口;即:一種是擴展java.lang.Thread類,另一種是通過java.lang.Runnable接口。

(1)繼承Thread類來實現線程:

import.JAVA.awt.*;

public class wxy1

{public static void main(Stringargs)

{thread1 t1=new thread1(1); // 創建線程

thread1 t2=new thread1(2);

t1.start();t2.start();

}

}

class thread1 extends Thread// thread1類繼承了Thread類

{ int d;

Mythread(int i)

{ d=i;}

public void run()

{ int i=0;

while(d+i==1)

{ try {sleep(1000);}

catch(InterruptedException e) {}

}

System.out.println(\"The d is \"+d);

}

(2)以下代碼是實現Runnable接口的實現多線程

import JAVA.applet.Applet;

import JAVA.awt.*;

public class wxy2 extends Applet implements Runnable// wxy2類繼承了Applet實現Runnable

{ static int r=20;

static int x=80;

static int y=20;

Thread th;

public void init()

{th = new Thread(this);

th.start();

}

public void run()

{int y1=+1;

int i=1;

int sleeptime=10;

while(true)

{y+=(i*y);

if(y-rgetSize().height)

y1*=-1;

try{t.sleep(sleeptime);}

catch(InterruptedException e){ }

}}}

4.多線程的優劣勢

多線程帶來的更大的好處是更好的交互性能和實時控制性能。多線程技術使程序的響應速度更快;當前沒有進行處理的任務可以將處理器時間讓給其他任務;占用大量處理時間的任務可以定期將處理器時間讓給其他任務;可以隨時停止任務;可以分別設置各個任務的優先級以優化性能。缺點有:等候使用共享資源時造成程序的運行速度變慢;對線程進行管理要求的額外CPU開銷;漫長的等待、浪費精力的資源競爭,以及死鎖等多線程癥狀。

三、結語

本文講述了Java多線程技術的幾個方面,包括JAVA概述、多線程技術(線程概述、線程屬性、線程實現和多線程的優劣勢)。多線程的核心在于多個代碼塊并發執行,本質特點在于各代碼塊之間的代碼是亂序執行的;多線程技術是JAVA的重要主要技術,Java語言對應用程序多線程能力的支持增強了Java作為網絡程序設計語言的優勢。

參考文獻:

[1]王衛生.Java程序設計與實訓教程[M].北京:北京理工大學出版社,2007:2.

[2]孟鉑,樊新華.Java的多線程應用[J].電腦知識與技術(學術交流),2006,(23).

[3]賈蘭蘭.剖析JAVA語言的多線程[J].信息系統工程,2009,(6).

主站蜘蛛池模板: 黄片在线永久| 国产成人亚洲综合a∨婷婷| 亚洲国产天堂久久九九九| 国产丝袜无码精品| 欧美亚洲激情| 高清无码不卡视频| 日韩无码视频专区| 少妇精品在线| 九九热视频精品在线| 亚洲天堂精品视频| 女人18毛片一级毛片在线| 她的性爱视频| 国产成人1024精品| 久夜色精品国产噜噜| 欧美精品xx| 青青草原国产精品啪啪视频| 欧美一道本| 国产精品分类视频分类一区| 国产精品福利在线观看无码卡| 97久久免费视频| 亚洲人成日本在线观看| 国产精品亚洲αv天堂无码| 99激情网| 欧美成人看片一区二区三区| 狠狠躁天天躁夜夜躁婷婷| a色毛片免费视频| 免费毛片a| 精品国产福利在线| 国产精品成人一区二区不卡 | 欧美日韩高清| 国产探花在线视频| 日韩免费中文字幕| 国产91无码福利在线| 久久久久亚洲AV成人人电影软件| 欧美日韩一区二区在线播放 | 亚洲高清日韩heyzo| 国产午夜一级毛片| 人人91人人澡人人妻人人爽| 亚洲欧洲自拍拍偷午夜色无码| 亚洲色偷偷偷鲁综合| 91久久夜色精品国产网站| 国产视频只有无码精品| 日韩精品一区二区三区中文无码| 99re在线免费视频| 美女内射视频WWW网站午夜| 欧美亚洲激情| 日韩视频福利| 欧美a√在线| 国内精品手机在线观看视频| 日韩欧美91| 亚洲日韩国产精品无码专区| 亚洲天堂在线免费| 98精品全国免费观看视频| 国产成人精品第一区二区| 国产亚洲精品无码专| 免费观看欧美性一级| 黄色网页在线播放| 99视频免费观看| 91丨九色丨首页在线播放| 亚洲视频二| 九九九精品视频| 日韩欧美中文在线| 九色在线视频导航91| 青青操国产视频| 亚洲美女一区| 亚洲激情区| 在线观看av永久| 亚洲区第一页| 日韩毛片在线播放| 亚洲精品波多野结衣| 成人精品区| 高清国产va日韩亚洲免费午夜电影| a级毛片免费在线观看| 中文字幕调教一区二区视频| 99性视频| 国产日产欧美精品| 亚洲伊人电影| 美女无遮挡拍拍拍免费视频| 国产成年无码AⅤ片在线| www亚洲天堂| 国产又粗又猛又爽视频| 国产成人区在线观看视频|