java多线程中出现的异常分别有哪些_java多线程试题
承Thread類
4.線程的高度是指在單個CPU上以某種順序運行多個線程
5.多個線程并發執行時,各個線程中語句的執行順序是確定的,但是線程之間的相對執行順序是不確定的
6.Java中的對象鎖是一種獨占的排他鎖
7.程序中可能出現一種情況:多個純種互相等待對方持有的鎖,而在得到對方的鎖之前都不會釋放自己的鎖,這就是死鎖.
8. notyfyAll() 方法將對象wait pool中的所有純種都移到lock pool中。
9.在一個線程中,建議使用標志,而不使用stop() 方法終止另一個線程。
10.Java線程組把一組線程看做一個對象進行統一處理。
11.進程是一個內核級的實體,而線程是一個用戶級的實體
12.在Java線程模型中的數據和代碼構成了線程體。
13.線程的優先級是在Thread類的常數MIN_PRIORITY 和MAX_PRIORITY
之間的一個值
14.Java的線程高度策略是基于優先級的搶占式調度。
15.處于新建狀態的線程可以使用的控制方法是start() 和stop() 。
16.一個進程可以包含多個線程
17.多任務操作系統運行多個進程來并發地執行多個任務
18.線程是由表示程序運行狀態的寄存器組成的
19.多線程允許單個程序創建多個并行執行的線程來完成多個子任務
20.Thread類中表示最高優先級的常量是getPriority() ,而表示最低優先級的常量是setPriority(0 .
三.簡答題
1. 簡述 synchronized 和 java.util.concurrent.locks.Lock 的異同?
答:主要相同點: Lock能完成synchronized所實現的所有功能
主要不同點:Lock有比synchronized更精確的線程語義和更好的性能。synchronized會自動釋放鎖,而Lock一定要求程序員手工釋放,并且必須在finally從句中釋放。
2.理解幾個概念對象鎖、sleep、wait、notify、notifyAll
對象鎖:每個對象都有對象鎖,當某個線程進入用synchronized定義方法時,就獲得了當前類對象(方法所屬的類的對象)的鎖,其他線程就不能再獲得該鎖,直到線程釋放該鎖。一個類對象有一個對象鎖,多個同步方法公用一個對象鎖。
sleep:是當前線程處于休眠狀態,將對cpu的控制權交給其他線程,但不釋放當前對象的鎖,其他線程可以獲得cpu,但不能進入當前線程控制的對象鎖。
wait:與sleep的區別是,它會釋放對象鎖,其他線程可以進入該同步塊。
notify:進入當前同步塊的線程調用wait方法變成休眠狀態的線程,notify將該線程變成等待狀態。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java多线程中出现的异常分别有哪些_java多线程试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 获取年预提,【判断题】正确核
- 下一篇: md5加密解密代码_Python内置方法