芯靈思SinlinxA33開(kāi)發(fā)板安卓開(kāi)發(fā)-java語(yǔ)言基礎(8)

發(fā)布時(shí)間:2018-12-26 14:50    發(fā)布者:電子工程fq
使用runnable接口:使用Thread子類(lèi)創(chuàng )建線(xiàn)程的優(yōu)點(diǎn)是:可以在子類(lèi)中增加新的成員變量,使線(xiàn)程具有某種屬性,也可以在子類(lèi)中新增加方法,使線(xiàn)程具有某種功能。
但是,Java不支持多繼承,Thread類(lèi)的子類(lèi)不能再擴展其他的類(lèi)。
線(xiàn)程的使用方法:1.start() : 線(xiàn)程調用該方法將啟動(dòng)線(xiàn)程,使之從新建狀態(tài)進(jìn)入就緒隊列排隊,一旦輪到它來(lái)享用CPU資源時(shí),就可以脫離創(chuàng )建它的線(xiàn)程獨立開(kāi)始自己的生命周期了。
2.run(): Thread類(lèi)的run()方法與Runnable接口中的run()方法的功能和作用相同,都用來(lái)定義線(xiàn)程對象被調度之后所執行的操作,都是系統自動(dòng)調用而用戶(hù)程序不得引用的方法。
3.sleep(int millsecond): 優(yōu)先級高的線(xiàn)程可以在它的run()方法中調用sleep方法來(lái)使自己放棄CPU資源,休眠一段時(shí)間。  
4.isAlive(): 線(xiàn)程處于“新建”狀態(tài)時(shí),線(xiàn)程調用isAlive()方法返回false。在線(xiàn)程的run()方法結束之前,即沒(méi)有進(jìn)入死亡狀態(tài)之前,線(xiàn)程調用isAlive()方法返回true.
5.currentThread():該方法是Thread類(lèi)中的類(lèi)方法,可以用類(lèi)名調用,該方法返回當前正在使用CPU資源的線(xiàn)程。  
6.interrupt() :一個(gè)占有CPU資源的線(xiàn)程可以讓休眠的線(xiàn)程調用interrupt()方法“吵醒”自己,即導致休眠的線(xiàn)程發(fā)生InterruptedException異常,從而結束休眠,重新排隊等待CPU資源。
線(xiàn)程同步:在處理多線(xiàn)程問(wèn)題時(shí),我們必須注意這樣一個(gè)問(wèn)題:當兩個(gè)或多個(gè)線(xiàn)程同時(shí)訪(fǎng)問(wèn)同一個(gè)變量,并且一個(gè)線(xiàn)程需要修改這個(gè)變量。我們應對這樣的問(wèn)題作出處理。
所謂線(xiàn)程同步就是若干個(gè)線(xiàn)程都需要使用一個(gè)synchronized修飾的方法.即程序中的若干個(gè)線(xiàn)程都需要使用一個(gè)方法,而這個(gè)方法用synchronized給予了修飾。   
多個(gè)線(xiàn)程調用synchronized方法必須遵守同步機制:當一個(gè)線(xiàn)程使用這個(gè)方法時(shí),其他線(xiàn)程想使用這個(gè)方法時(shí)就必須等待,直到線(xiàn)程使用完該方法。在使用多線(xiàn)程解決許多實(shí)際問(wèn)題時(shí),可能要把某些修改數據的方法用關(guān)鍵字synchronized來(lái)修飾


本文地址:http://selenalain.com/thread-558980-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页