Java多线程学习笔记一
一、關(guān)于多線(xiàn)程
Java中的多線(xiàn)程是一個(gè)同時(shí)執(zhí)行多個(gè)線(xiàn)程的進(jìn)程。線(xiàn)程是一個(gè)輕量級(jí)的子進(jìn)程,是最小的處理單元。線(xiàn)程使用共享內(nèi)存區(qū)域,不分配單獨(dú)的內(nèi)存區(qū)域以節(jié)省內(nèi)存。Java多線(xiàn)程多用于游戲、動(dòng)畫(huà)方面。
二、Java多線(xiàn)程使用優(yōu)點(diǎn)
(1)它不會(huì)阻塞用戶(hù),因?yàn)榫€(xiàn)程是獨(dú)立的,可以同時(shí)執(zhí)行多個(gè)操作。
(2)可以一起執(zhí)行許多操作,因此能夠節(jié)省很多時(shí)間。
(3)線(xiàn)程是獨(dú)立的,因此如果在單個(gè)線(xiàn)程中發(fā)生異常,不會(huì)影響到其他線(xiàn)程的正常運(yùn)行。
三、Java Thread類(lèi)
Java提供了Thread類(lèi)來(lái)實(shí)現(xiàn)線(xiàn)程編程。Thread類(lèi)提供了在線(xiàn)程上創(chuàng)建和執(zhí)行操作的構(gòu)造函數(shù)和方法,Thread類(lèi)擴(kuò)展了Object類(lèi)并實(shí)現(xiàn)了Runnable接口。
幾個(gè)常用的線(xiàn)程方法:
(1)start():它用于開(kāi)始執(zhí)行線(xiàn)程
(2)run():它用于為線(xiàn)程執(zhí)行操作
(3)setPriority():它設(shè)置改變線(xiàn)程的優(yōu)先級(jí)
(4)stop():它用于停止線(xiàn)程
(5)interrupt():該方法會(huì)中斷線(xiàn)程
(6)getThreadGroup():該方法用來(lái)返回此線(xiàn)程所屬的線(xiàn)程組
四、線(xiàn)程的生命周期
Java中線(xiàn)程的聲明周期由JVM控制,Java線(xiàn)程狀態(tài)如下:
(1)初始:新創(chuàng)建了一個(gè)線(xiàn)程對(duì)象,但還沒(méi)有調(diào)用start()方法。
(2)運(yùn)行:Java線(xiàn)程中將“就緒”和“運(yùn)行中”兩種狀態(tài)統(tǒng)稱(chēng)為“運(yùn)行”狀態(tài)。
線(xiàn)程對(duì)象創(chuàng)建后,其他線(xiàn)程調(diào)用了該對(duì)象的start()方法。該狀態(tài)的線(xiàn)程位于可運(yùn)行線(xiàn)程池中,等待被線(xiàn)程調(diào)度選中,獲取CPU的使用權(quán),此時(shí)處于就緒狀態(tài)。就緒狀態(tài)的線(xiàn)程在獲得CPU時(shí)間片后變?yōu)檫\(yùn)行中狀態(tài)。
(3)阻塞:表示線(xiàn)程阻塞于鎖。
(4)等待:進(jìn)入該狀態(tài)的線(xiàn)程需要等待其他線(xiàn)程做出一些特定動(dòng)作(通知或中斷)。
(5)超時(shí)等待:該狀態(tài)可以在指定的時(shí)間后自行返回。
(6)終止:表示該進(jìn)程已經(jīng)執(zhí)行完畢。
轉(zhuǎn)載于:https://www.cnblogs.com/mqlblog/p/10692745.html
總結(jié)
以上是生活随笔為你收集整理的Java多线程学习笔记一的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【题解】 P2151 [SDOI2009
- 下一篇: Java高级特性 第10节 IDEA和E