亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

初深線程

2019-11-14 15:16:08
字體:
來源:轉載
供稿:網友

java多線程編程

一、操作系統中線程和進程的概念

現在的操作系統是多任務操作系統。多線程是實現多任務的一種方式。進程是指一個內存中運行的應用程序,每個進程都有自己獨立的一塊內存空間,一個進程中可以啟動多個線程。比如在Windows系統中,一個運行的exe就是一個進程。線程是指進程中的一個執行流程,一個進程中可以運行多個線程。比如java.exe進程中可以運行很多線程。線程總是屬于某個進程,進程中的多個線程共享進程的內存。同時”執行是人的感覺,在線程之間實際上輪換執行。

二、Java中的線程

在Java中,“線程”指兩件不同的事情:、java.lang.Thread類的一個實例;2、線程的執行。使用java.lang.Thread類或者java.lang.Runnable接口編寫代碼來定義、實例化和啟動新線程。一個Thread類實例只是一個對象,像Java中的任何其他對象一樣,具有變量和方法,生死于堆上。Java中,每個線程都有一個調用棧,即使不在程序中創建任何新的線程,線程也在后臺運行著。一個Java應用總是從main()方法開始運行,mian()方法運行在一個線程內,它被稱為主線程。一旦創建一個新的線程,就產生一個新的調用棧。線程總體分兩類:用戶線程和守候線程。當所有用戶線程執行完畢的時候,JVM自動關閉。但是守候線程卻不獨立于JVM,守候線程一般是由操作系統或者用戶自己創建的。

 

Java線程:概念與原理

一、多線程的好處是什么

(1)多線程技術使程序的響應速度更快 ,因為用戶界面可以在進行其它工作的同時一直處于活動狀態;
(2)當前沒有進行處理的任務時可以將處理器時間讓給其它任務;
(3)占用大量處理時間的任務可以定期將處理器時間讓給其它任務;
(4)可以隨時停止任務;
(5)可以分別設置各個任務的優先級以優化性能。

二、什么時候使用多線程技術

(1)耗時或大量占用處理器的任務阻塞用戶界面操作;
(2)各個任務必須等待外部資源 (如遠程文件或 Internet連接)。

三、多線程的缺點是什么

(1)等候使用共享資源時造成程序的運行速度變慢。這些共享資源主要是獨占性的資源 ,如打印機等。
(2)對線程進行管理要求額外的 CPU開銷。線程的使用會給系統帶來上下文切換的額外負擔。當這種負擔超過一定程度時,多線程的特點主要表現在其缺點上,比如用獨立的線程來更新數組內每個元素。
(3)線程的死鎖。即較長時間的等待或資源競爭以及死鎖等多線程癥狀。
(4)對公有變量的同時讀或寫。當多個線程需要對公有變量進行寫操作時,后一個線程往往會修改掉前一個線程存放的數據,從而使前一個線程的參數被修改;另外 ,當公用變量的讀寫操作是非原子性時,在不同的機器上,中斷時間的不確定性,會導致數據在一個線程內的操作產生錯誤,從而產生莫名其妙的錯誤,而這種錯誤是程序員無法預知的。

Java線程:創建與啟動

一、定義線程

1、擴展java.lang.Thread類。
2、實現java.lang.Runnable接口。
 

二、實例化線程

1、如果是擴展java.lang.Thread類的線程,則直接new即可。
2、如果是實現了java.lang.Runnable接口的類,則用Thread的構造方法。

三、啟動線程

在線程的Thread對象上調用start()方法,而不是run()或者別的方法。
在調用start()方法之前:線程處于新狀態中,新狀態指有一個Thread對象,但還沒有一個真正的線程。
在調用start()方法之后:發生了一系列復雜的事情
啟動新的執行線程(具有新的調用棧);
該線程從新狀態轉移到可運行狀態;
當該線程獲得機會執行時,其目標run()方法將運行。
注意:對Java來說,run()方法沒有任何特別之處。像main()方法一樣,它只是新線程知道調用的方法名稱(和簽名)。因此,在Runnable上或者Thread上調用run方法是合法的。但并不啟動新的線程。

Java線程:線程棧模型

線程棧是指某時刻時內存中線程調度的棧信息,當前調用的方法總是位于棧頂。線程棧的內容是隨著程序的運行動態變化的,因此研究線程棧必須選擇一個運行的時刻(實際上指代碼運行到什么地方)。

Java線程:線程狀態的轉換

 

一、線程狀態

線程的狀態轉換是線程控制的基礎。線程狀態總的可分為五大狀態,分別是:

二、阻止線程執行

我們只考慮三種狀態,分別是哪三種呢?

1、睡眠

Thread.sleep(longmillis)和Thread.sleep(long millis, int nanos)靜態方法強制當前正在執行的線程休眠(暫停執行),以“減慢線程”。當線程睡眠時,它入睡在某個地方,在蘇醒之前不會返回到可運行狀態。當睡眠時間到期,則返回到可運行狀態。
線程睡眠的原因:線程執行太快,或者需要強制進入下一輪,因為Java規范不保證合理的輪換。
注意:
1、線程睡眠是幫助所有線程獲得運行機會的最好方法。
2、線程睡眠到期自動蘇醒,并返回到可運行狀態,不是運行狀態。sleep()中指定的時間是線程不會運行的最短時間。因此,sleep()方法不能保證該線程睡眠到期后就開始執行。
3、sleep()是靜態方法,只能控制當前正在運行的線程。
4、線程的優先級和線程讓步yield()
線程的讓步是通過Thread.yield()來實現的。yield()方法的作用是:暫停當前正在執行的線程對象,并執行其他線程。
要理解yield(),必須了解線程的優先級的概念。線程總是存在優先級,優先級范圍在1~10之間。JVM線程調度程序是基于優先級的搶先調度機制。在大多數情況下,當前運行的線程優先級將大于或等于線程池中任何線程的優先級。但這僅僅是大多數情況。
注意:當設計多線程應用程序的時候,一定不要依賴于線程的優先級。因為線程調度優先級操作是沒有保障的,只能把線程優先級作用作為一種提高程序效率的方法,但是要保證程序不依賴這種操作。
當線程池中線程都具有相同的優先級,調度程序的JVM實現自由選擇它喜歡的線程。這時候調度程序的操作有兩種可能:一是選擇一個線程運行,直到它阻塞或者運行完成為止。二是時間分片,為池內的每個線程提供均等的運行機會。
設置線程的優先級:線程默認的優先級是創建它的執行線程的優先級。可以通過setPRiority(intnewPriority)更改線程的優先級。
線程優先級為1~10之間的正整數,JVM從不會改變一個線程的優先級。然而,1~10之間的值是沒有保證的。一些JVM可能不能識別10個不同的值,而將這些優先級進行每兩個或多個合并,變成少于10個的優先級,則兩個或多個優先級的線程可能被映射為一個優先級。

3、Thread.yield()方法

Thread.yield()方法作用是:暫停當前正在執行的線程對象,并執行其他線程。
yield()應該做的是讓當前運行線程回到可運行狀態,以允許具有相同優先級的其他線程獲得運行機會。因此,使用yield()的目的是讓相同優先級的線程之間能適當的輪轉執行。但是,實際中無法保證yield()達到讓步目的,因為讓步的線程還有可能被線程調度程序再次選中。

4、join()方法

Thread的非靜態方法join()讓一個線程B“加入”到另外一個線程A的尾部。在A執行完畢之前,B不能工作。
另外,join()方法還有帶超時限制的重載版本。例如t.join(5000);則讓線程等待5000毫秒,如果超過這個時間,則停止等待,變為可運行狀態。
線程的加入join()對線程棧導致的結果是線程棧發生了變化,當然這些變化都是瞬時的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91啪国产在线| 国产欧美精品日韩精品| 日韩精品中文字幕在线| 91免费欧美精品| 精品性高朝久久久久久久| 国产精品v片在线观看不卡| 亚洲精品大尺度| www.久久久久久.com| 日韩美女在线播放| 亚洲精品白浆高清久久久久久| 久久久久国产精品免费网站| 欧美又大粗又爽又黄大片视频| 亚洲精品一区二区三区婷婷月| 国产97在线|亚洲| 欧美视频在线观看 亚洲欧| 日韩久久午夜影院| 在线观看精品国产视频| 国产精品一区二区性色av| 青青a在线精品免费观看| 日韩中文字幕在线| 精品视频一区在线视频| 国产视频999| 欧美孕妇与黑人孕交| 菠萝蜜影院一区二区免费| 久久免费国产视频| 欧美精品久久久久久久免费观看| 欧美网站在线观看| 性欧美暴力猛交69hd| 欧美精品在线网站| 自拍视频国产精品| 中文字幕最新精品| 国产精品入口免费视频一| 中文字幕久久亚洲| 久久久精品免费视频| 国产97在线亚洲| 国产精品自拍视频| 在线亚洲午夜片av大片| 6080yy精品一区二区三区| 国产精品久久久久久影视| 国产欧美精品在线| 国产丝袜一区视频在线观看| 亚洲风情亚aⅴ在线发布| 国产91在线播放精品91| 亚洲人成网站色ww在线| 成人av.网址在线网站| 国产在线精品一区免费香蕉| 国产一区二区美女视频| 欧美高清不卡在线| 日本一本a高清免费不卡| 亚洲国产又黄又爽女人高潮的| 综合136福利视频在线| 欧美一级bbbbb性bbbb喷潮片| 91av视频在线| 欧美日韩国产一中文字不卡| 庆余年2免费日韩剧观看大牛| 中文字幕亚洲专区| 国产香蕉97碰碰久久人人| 国产999精品视频| 疯狂做受xxxx高潮欧美日本| 一本一道久久a久久精品逆3p| 日韩在线观看免费网站| 欧美极品少妇xxxxⅹ喷水| 欧美精品在线免费| 亚洲欧美成人一区二区在线电影| 欧美日韩亚洲系列| 色老头一区二区三区在线观看| 国产99久久精品一区二区永久免费| 国产精品第10页| 亚洲第一网中文字幕| 国内外成人免费激情在线视频网站| 中文字幕最新精品| 国产精品中文在线| 久久久91精品国产| 欧美日韩国产在线看| www.久久撸.com| 成人精品视频在线| 国产亚洲精品一区二555| 国产精品av网站| 欧美高清在线观看| 日本精品一区二区三区在线播放视频| 久热99视频在线观看| 亚洲影院高清在线| 久久久久久久色| 91国产美女视频| 久久精品视频免费播放| 亚洲自拍偷拍区| 色偷偷亚洲男人天堂| 日韩精品视频在线| 国产精品成人观看视频国产奇米| 国产做受69高潮| 色妞一区二区三区| 久久久久久国产精品三级玉女聊斋| 91精品综合视频| 欧美国产极速在线| 国产成人精品久久二区二区| 97视频在线观看成人| 久久久久久九九九| 欧美激情乱人伦| 欧美夜福利tv在线| 乱亲女秽乱长久久久| 亚州精品天堂中文字幕| 欧美在线视频免费播放| 久久全球大尺度高清视频| 欧美激情中文字幕在线| 992tv在线成人免费观看| 成人欧美一区二区三区黑人| 日本高清不卡在线| 午夜精品理论片| 欧美激情一二三| 伊人男人综合视频网| 亚洲精品丝袜日韩| 国产精品日日做人人爱| 国产精品专区h在线观看| 中文字幕综合一区| 日本精品视频在线观看| 国产精品久久av| 日韩暖暖在线视频| 日韩欧美亚洲综合| 国产丝袜一区视频在线观看| 久久久成人av| 性欧美办公室18xxxxhd| 粉嫩老牛aⅴ一区二区三区| 亚洲午夜未删减在线观看| 亚洲精品一区久久久久久| 欧美日韩免费区域视频在线观看| 久久中文字幕一区| 欧美成人免费视频| 97免费视频在线播放| 日韩视频免费观看| 57pao成人永久免费视频| 欧美理论电影在线播放| 久久久精品网站| 欧美激情亚洲自拍| 日日噜噜噜夜夜爽亚洲精品| 久久99视频免费| 成人免费淫片aa视频免费| 欧美中在线观看| 欧美成人中文字幕在线| 久久人人97超碰精品888| 色偷偷888欧美精品久久久| 亚洲成色999久久网站| 亚洲国产精品va在线| 日韩毛片中文字幕| 91高清免费在线观看| 精品亚洲一区二区三区在线播放| 国产精品久久不能| 亚洲成人激情小说| 国产精品国内视频| 欧美日韩在线观看视频| 日韩中文在线中文网在线观看| 日韩中文字幕免费| 性视频1819p久久| 国产午夜精品久久久| 久久久这里只有精品视频| 久久精品国产一区| 精品久久中文字幕久久av| 成人免费观看49www在线观看| 最近2019中文免费高清视频观看www99| 91视频九色网站| 亚洲free嫩bbb| 国产小视频国产精品| 亚洲第一精品夜夜躁人人躁| 亚洲电影免费观看高清| 色综合视频一区中文字幕|