Java多線程常用方法

start()與run()

?? ? ?start() 啟動線程并執行相應的run()方法
? ? ? run() 子線程要執行的代碼放入run()方法

getName()和setName()

?getName() 獲取此線程的名字
?setName() 設置此線程的名字

isAlive()

是判斷當前線程是否處于活動狀態。活動狀態就是已經啟動尚未終止。

currentThread()

返回代碼段正在被哪個線程調用

sleep()

主要的作用是讓當前線程停止執行,把cpu讓給其他線程執行,但不會釋放對象鎖和監控的狀態,到了指定時間后線程又會自動恢復運行狀態

注意:線程睡眠到期自動蘇醒,并返回到可運行狀態,不是運行狀態。sleep()中指定的時間是線程不會運行的最短時間。因此,sleep()方法不能保證該線程睡眠到期后就開始執行

yield()

中文意思:放棄,屈服
一個線程調用yield()意味著告訴虛擬機自己非常樂于助人,可以把自己的位置讓給其他線程(這只是暗示,并不表絕對)。但得注意,讓出cpu并不代表當前線程不執行了。當前線程讓出cpu后,還會進行cpu資源的爭奪,但是能不能再次分配到,就不一定了

?

getPriority()和setPriority(int newPriority)

這兩個方法是用于獲取當前和設置線程的優先級。優先級高的線程得到的cpu多。也就是說,兩個等待的線程,優先級高的線程容易被cpu執行。

默認情況下,線程的優先級是5。線程的優先級分為1~10等級。

getId()

取得線程唯一標識

yield()

yield() 暫停當前方法,釋放自己擁有的CPU,線程進入就緒狀態。

join()

所屬線程對象x正常執行run,當前線程z無限等待直到執行完。常用于需要子線程的執行結果

interrupted()

interrupted()是靜態方法:內部實現是調用的當前線程的isInterrupted(),并且會重置當前線程的中斷狀態

isInterrupted()是實例方法,是調用該方法的對象所表示的那個線程的isInterrupted(),不會重置當前線程的中斷狀態

它們的作用是判斷線程是否是停止狀態

isDaeMon、setDaemon(boolean on)

java線程有兩種,一種是用戶線程,一種是守護線程。守護線程是一個特殊的線程,任何一個守護線程都是jvm中所有非守護線程的保姆。當進程中不存在非守護線程時,守護線程會自動銷毀。典型的守護線程就是垃圾回收線程。

第一個是判斷線程是不是守護線程,第二個是設置線程為守護線程,必須在線程start之前setDaemon(true)。

stop()

強制停止,已廢棄

可能釋放鎖導致數據不對。

可能導致清理工作做不好。

suspend和resume

暫停和恢復

會造成獨占(永遠的暫停)(方法)

造成不同步

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445219.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445219.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445219.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MachineLearning(2)-圖像分類常用數據集

圖像分類常用數據集1 CIFAR-102.MNIST3.STL_104.Imagenet5.L-Sun6.caltech-101在訓練神經網絡進行圖像識別分類時,常會用到一些通用的數據集合。利用這些數據集合可以對比不同模型的性能差異。下文整理常用的圖片數據集合(持續更新中)。基本信息對比表格…

Linux網絡編程實例詳解

本文介紹了在Linux環境下的socket編程常用函數用法及socket編程的一般規則和客戶/服務器模型的編程應注意的事項和常遇問題的解決方法,并舉了具體代 碼實例。要理解本文所談的技術問題需要讀者具有一定C語言的編程經驗和TCP/IP方面的基本知識。要實習本文的示例&…

python的命令解析getopt.getopt()函數分析

【轉自http://hi.baidu.com/javalang/blog/category/Python】 可以參考http://docs.python.org/lib/module-getopt.html # -*- coding: cp936 -*-import getoptimport sysdef usage():print Help Information:-h: Show help information-xValue:...if __name____main__:#set d…

博弈論基礎

博弈論總結 什么是博弈論: 多人進行博弈,假設每個人都采取最優策略,一定有一個人勝出,在知道初態及規則的情況下,求解出 何人勝出的一類問題的理論及方法。 博弈論的一些性質 P點:必敗點,N…

矩陣論-范數理論及其應用

范數理論及其應用2.1向量范數及其性質2.2矩陣范數本系列博文主要總結學習矩陣論的心得筆記,參考數目《矩陣論》–張凱院;整個文章的整理體系參照行書過程。范數–非負實數,用于衡量線性空間元素(如:向量,矩…

大數據學習(09)--spark學習

文章目錄目錄1.spark介紹1.1 spark介紹1.2 scale介紹1.3 spark和Hadoop比較2.spark生態系統3.spark運行框架3.1 基本概念3.2 架構的設計3.3 spark運行基本流程3.4 spark運行原理3.5 RDD運行原理3.5.1 設計背景3.5.2 RDD概念和特性3.5.3 RDD之間的依賴關系3.5.4 stage的劃分3.5.…

探索 Pexpect

概述 通過本系列第一部分 《探索 Pexpect,第 1 部分:剖析 Pexpect 》(請參閱參考資料)的介紹,相信大家已經對 Pexpect 的用法已經有了比較全面的了解,知道 Pexpect 是個純 Python 語言實現的模塊&#xff…

Python的Pexpect詳解 [圖片]

Pexpect 是一個用來啟動子程序并對其進行自動控制的純 Python 模塊。 Pexpect 可以用來和像 ssh、ftp、passwd、telnet 等命令行程序進行自動交互。繼第一部分《探索 Pexpect,第 1 部分:剖析 Pexpect 》介紹了 Pexpect 的基礎和如何使用后,本…

關系數據庫——sql增刪改

數據的插入 插入元祖 --1. 表名后沒有指定屬性列:表示要插入的是一條完整的元組,且屬性列屬性與表定義中的順序一致 insert into student values (201215128, 陳東, 18, 男, IS);--2. 在表明后指定要插入數據的表名及屬性列,屬性列的順序可…

機器學習中的聚類方法總結

聚類定義 定義 聚類就是對大量未知標注 的數據集,按數據 的內在相似性將數據集劃分為多個類別,使 類別內的數據相似度較大而類別間的數據相 似度較小。是無監督的分類方式。 聚類思想 給定一個有N個對象的數據集,構造數據的k 個簇&#x…

學點數學(1)-隨機變量函數變換

隨機變量函數變換本文介紹一維隨機變量函數變換,參考文獻:https://wenku.baidu.com/view/619f74ac3186bceb19e8bbd0.html變換TTT作用于隨機變量XXX,產生隨機變量YYY. T:X?>Y或者寫為yT(x)T:X->Y 或者寫為 yT(x)T:X?>Y或者寫為yT(x…

關系數據庫——關系數據語言

關系 域:一組具有相同數據類型的值的集合(即取值范圍) 笛卡爾積:域上的一種集合運算。結果為一個集合,集合的每一個元素是一個元組,元組的每一個分量來自不同的域。 基數:一個域允許的不同取值…

Python模塊(2)-Numpy 簡易使用教程

Numpy模塊 簡易使用教程1.數組創建2.數組基本屬性-維度、尺寸、數據類型3.數組訪問-索引、切片、迭代4.數組的算術運算-加減乘除、轉置求逆、極大極小5.通用函數-sin,cos,exp,sqrtnp.dot與np.matmul的區別6.數組的合并和分割6.1 np.vstack(),np.hstack()6.2 np.stack()7.list與…

機器學習問題總結(01)

文章目錄1.請描述推薦系統中協同過濾算法CF的原理2.請描述決策樹的原理、過程、終止條件,以及如何防止過擬合2.1決策樹生成算法2.2 剪枝處理(防止過擬合)2.3 停止條件2.4 棵決策樹的生成過程2.5 決策樹的損失函數3.請描述K-means的原理&#…

pthread_attr_init線程屬性

1.線程屬性 線程具有屬性,用pthread_attr_t表示,在對該結構進行處理之前必須進行初始化,在使用后需要對其去除初始化。我們用pthread_attr_init函數對其初始化,用pthread_attr_destroy對其去除初始化。 1. …

Python實例講解 -- 解析xml

Xml代碼 <?xml version"1.0" encoding"utf-8"?> <info> <intro>信息</intro> <list id001> <head>auto_userone</head> <name>Jordy</name> <number&g…

springboot3——Email

maven導入包&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.1.6.RELEASE</version></dependency> 參數配置&#xff1a; # MailPrope…

python(22)--面向對象1-封裝

python面向對象1面向過程/面向對象2面向對象核心概念-類3類的設計3.1類三要素-類名、屬性、方法3.2面向對象基礎語法3.2.1查看對象的常用方法3.2.2類定義3.2.3創建類對象3.2.4__init__()方法3.2.5 self參數3.2.6類內置方法和屬性_del_()方法--銷毀對象_str_()方法--定制化輸出對…

機器學習問題總結(02)

文章目錄1.stacking模型以及做模型融合的知識1.1 從提交結果中融合1.2 stacking1.3 blending2. 怎樣去優化SVM算法模型的&#xff1f;2.1 SMO優化算法2.2 libsvm 和 Liblinear3.現有底層是tensorflow的keras框架&#xff0c;如果現在有一個tensorflow訓練好的模型&#xff0c;k…

python對操作系統的目錄和文件操作

一、獲取當前目錄下的特定文件列表>>>import glob,os>>>curdir os.getcwd() #獲取當前目錄>>>os.chdir(workdir) #設置當前目錄>>>dir glob.glob(*.dat) #獲取當前目錄的dat文件列表>>>os.chdir(curdir) #…