多線程

多線程

多線程概述:進(jìn)程,線程搂捧。

進(jìn)程:正在運行的程序驮俗。是系統(tǒng)進(jìn)行資源分配和調(diào)用的獨立單位。每一個進(jìn)程都有它自己的內(nèi)存空間和系統(tǒng)資源

多進(jìn)程有什么意義:單進(jìn)程計算機只能做一個事情允跑,一邊玩游戲和聽音樂

線程:是程序的執(zhí)行單元王凑,執(zhí)行路徑提佣。是程序使用CPU的基本單位;

多線程有什么意義

不是提高程序的執(zhí)行速度荤崇。其實是為了提高應(yīng)用程序的使用率拌屏,線程的執(zhí)行有隨機性

并行和并發(fā):前者邏輯上同時發(fā)生,指某一個時間斷內(nèi)同時運行多個程序术荤;

? ? ? ? ? ? ? ? ? ? ? ? 后者 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?點 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?倚喂。

Java程序運行原理:由java命名啟動JVM,JVM啟動就相當(dāng)于啟動一個進(jìn)程瓣戚,接著有該進(jìn)程創(chuàng)建了一個主線程去調(diào)用main方法端圈。

多線程實現(xiàn):

方式1:繼承Thread類

步驟

A:自定義類MyThread繼承Thread類

B:MyThread類里面重寫run()

C:創(chuàng)建對象

d:啟動線程

d:啟動方式調(diào)用start()方法:啟動+運行一次run()有且只能調(diào)用一次。

獲取線程名稱:

public final String getName();

設(shè)置線程名稱:

public final void setName(String name); PS:跟自定義類一樣

獲取當(dāng)前線程名稱:

public ststic Thread currentThread();

Thread currentThread.getname();

線程調(diào)度:分時調(diào)度(平分時間)子库,搶占式調(diào)度模型(按優(yōu)先級)舱权。

Java用搶占式:

public final int getPriority();返回線程優(yōu)先級:

注意:默認(rèn)優(yōu)先級5

設(shè)置優(yōu)先級:

public final void setPriority():修改優(yōu)先級

優(yōu)先級范圍1-10;越大越好幾率越高

線程休眠:

public static void sleep(long millis)暫停millis毫秒

線程假如:

public final void join()等待該線程終止

線程暫停:

public static void yield():暫停當(dāng)前執(zhí)行的線程對象仑嗅,并執(zhí)行其他線程宴倍,讓執(zhí)行看起來很和諧

后臺線程:

public final void setDeamon(boolean on)設(shè)置守護(hù)線程,該線程走完其他線程都結(jié)束仓技,必須在啟動前調(diào)用(死前可以板倆下)

中斷線程:

public final void stop()讓線程停止鸵贬,過時了

public void interrupt()中斷線程,把線程狀態(tài)終止并拋出一個InterruptedException.

線程生命周期:

新建--就緒--運行--死亡

阻塞--就緒--運行--死亡

多線程實現(xiàn)方案2:實現(xiàn)Runnable接口

步驟: A:自定義MyRunnable師兄Runnable接口

B:重寫run方法

C:創(chuàng)建MyRunnable類的對象

D:創(chuàng)建Thread類的對象脖捻,并把C步驟的對象作為構(gòu)造參數(shù)傳遞

解決單繼承的局限性阔逼,適合多個相同程序的代碼去處理同一個資源的情況,把線程同程序的代碼地沮,數(shù)據(jù)有效分離嗜浮,較好的提醒了面向?qū)ο蟮乃枷?/p>

同步代碼塊:

synchronized(對象){

需要同步的代碼

另一個鎖:Lock(接口)

獲取鎖:

public void lock()

釋放鎖:

public void unlock()

實現(xiàn)類ReentrantLock;

死鎖問題:

同步:效率低,嵌套時候容易產(chǎn)生死鎖

死鎖:指倆個或者倆個以上的線程在爭奪資源的過程中摩疑,發(fā)生的一種相互等待的現(xiàn)象危融。

解決:線程間通信問題:不同種類的線程間針對同一個資源的操作

生存者消費者同一把鎖

public void wait();等待

notify();喚醒單個線程

notifyAll();所有

線程組:使用ThreadGroup

public final ThreadGroup getThreadGroup();

public final String getname();

線程池:Executors工廠類.

public static ExecutService newCacherThreadPool():

FixedThreadPool(int nThreads);創(chuàng)建幾個線程

SingleThreadExecutor();

結(jié)束線程池:

shutdown();

匿名內(nèi)部類多線程使用:new Thread(){public void run(){}}.start();

了解:

定時器:定期執(zhí)行程序

Timer(定時)和TimerTask(任務(wù))類

public Timer()

public void schedule(TimeTask task,long delay)

(? ? ? ? ? ? ? ? ? ? ? ? ,long period)

cancel()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市未荒,隨后出現(xiàn)的幾起案子专挪,更是在濱河造成了極大的恐慌,老刑警劉巖片排,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寨腔,死亡現(xiàn)場離奇詭異,居然都是意外死亡率寡,警方通過查閱死者的電腦和手機迫卢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來冶共,“玉大人乾蛤,你說我怎么就攤上這事每界。” “怎么了家卖?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵眨层,是天一觀的道長。 經(jīng)常有香客問我上荡,道長趴樱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任酪捡,我火速辦了婚禮叁征,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逛薇。我一直安慰自己捺疼,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布永罚。 她就那樣靜靜地躺著啤呼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尤蛮。 梳的紋絲不亂的頭發(fā)上媳友,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天斯议,我揣著相機與錄音产捞,去河邊找鬼。 笑死哼御,一個胖子當(dāng)著我的面吹牛坯临,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播恋昼,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼看靠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了液肌?” 一聲冷哼從身側(cè)響起挟炬,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嗦哆,沒想到半個月后谤祖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡老速,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年粥喜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片橘券。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡额湘,死狀恐怖卿吐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锋华,我是刑警寧澤嗡官,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站毯焕,受9級特大地震影響谨湘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜芥丧,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一紧阔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧续担,春花似錦擅耽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至询兴,卻和暖如春乃沙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诗舰。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工警儒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人眶根。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓蜀铲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親属百。 傳聞我的和親對象是個殘疾皇子记劝,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 本文主要講了java中多線程的使用方法、線程同步族扰、線程數(shù)據(jù)傳遞厌丑、線程狀態(tài)及相應(yīng)的一些線程函數(shù)用法、概述等渔呵。 首先講...
    李欣陽閱讀 2,444評論 1 15
  • Java多線程學(xué)習(xí) [-] 一擴展javalangThread類 二實現(xiàn)javalangRunnable接口 三T...
    影馳閱讀 2,952評論 1 18
  • 線程概述 線程與進(jìn)程 進(jìn)程 ?每個運行中的任務(wù)(通常是程序)就是一個進(jìn)程怒竿。當(dāng)一個程序進(jìn)入內(nèi)存運行時,即變成了一個進(jìn)...
    閩越布衣閱讀 1,008評論 1 7
  • 該文章轉(zhuǎn)自:http://blog.csdn.net/evankaka/article/details/44153...
    加來依藍(lán)閱讀 7,337評論 3 87
  • 不久前在某藝術(shù)學(xué)院附近的西餐廳吃飯厘肮,那天溫暖的冬日陽光透過透明的玻璃打在身上愧口,很是愜意。等待的時候类茂,我端著檸檬水四...
    Joyna_Lin閱讀 769評論 0 1