java二期_享学二期java架构师
前言-薇:itstudy01
在我們工作和學(xué)習(xí)的過(guò)程中,Java線程我們或多或少的都會(huì)用到,但是在使用的過(guò)程上并不是很順利,會(huì)遇到各種各樣的坑,這里我通過(guò)講解Thread類(lèi)中的核心方法,以求重點(diǎn)掌握以下關(guān)鍵技術(shù)點(diǎn):
線程的啟動(dòng)
如何使線程暫停
如何使線程停止
線程的優(yōu)先級(jí)
線程安全相關(guān)的問(wèn)題
什么是進(jìn)程和線程?
進(jìn)程 - 進(jìn)程是具有一定獨(dú)立功能的程序(例如QQ.exe),關(guān)于某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位。
線程 - 線程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位;線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源(如程序計(jì)數(shù)器,一組寄存器和棧),但是它可與同屬一個(gè)進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源。
一個(gè)線程可以創(chuàng)建和撤銷(xiāo)另一個(gè)線程;同一個(gè)進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。
相對(duì)進(jìn)程而言,線程是一個(gè)更加接近于執(zhí)行體的概念,它可以與同進(jìn)程中的其他線程共享數(shù)據(jù),但擁有自己的棧空間,擁有獨(dú)立的執(zhí)行序列。
在串行程序基礎(chǔ)上引入線程和進(jìn)程是為了提高程序的并發(fā)度,從而提高程序運(yùn)行效率和響應(yīng)時(shí)間。
多線程的優(yōu)點(diǎn)
其實(shí)多線程從某方面可以等價(jià)于多任務(wù),當(dāng)你有多個(gè)任務(wù)要處理時(shí),多個(gè)任務(wù)一起做所消耗的時(shí)間肯定比任務(wù)串行起來(lái)做,所消耗的時(shí)間短;下圖可以很好的說(shuō)明:
單任務(wù)運(yùn)行環(huán)境與多任務(wù)運(yùn)行環(huán)境比較
在我們現(xiàn)在的系統(tǒng)中,CPU的運(yùn)行速度是很快的,其中很大的時(shí)間消耗是在等硬盤(pán)、IO輸入、網(wǎng)絡(luò)等資源;當(dāng)多任務(wù)時(shí),CPU完全可以在多個(gè)任務(wù)之間來(lái)回切換。使用的花費(fèi)的時(shí)間遠(yuǎn)遠(yuǎn)少于所有任務(wù)需要消耗的少。
使用多線程
在Java的JDK包中,已經(jīng)自帶了對(duì)多線程技術(shù)的支持,可以非常方便地進(jìn)行多線程的編程。實(shí)現(xiàn)多線程編程的方式主要有兩種:
繼承Thread類(lèi)
實(shí)現(xiàn)Runnable接口
總結(jié)
以上是生活随笔為你收集整理的java二期_享学二期java架构师的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 买车可以开发票吗
- 下一篇: LC和RC滤波电路分析