多線程:概念

什麼是進程、線程?它們之間的區別是什麼?

1.進程是操作系統中的單位,1個進程指操作系統中在運行的一個客戶端/應用

2.線程是客戶端/應用中的單位,是進程的執行路徑

3.區別:

進程間相互獨立,有獨立地址空間,同一進程內的多個線程會共享部分狀態, 多個線程可以讀寫同一塊內存(一個進程無法直接訪問另一進程的內存)。

進程可以有多個線程

 

什麼是同步、異步、併發?

同步:同一任務資源下多個線程按照任務資源執行的先後順序進行執行

異步:任務資源脫離原有的瀑布式執行流程,交給另外一個線程執行,而當前執行任務的線程跳過該任務資源按照瀑布式執行流程繼續執行

併發:同一任務資源下按照任務資源執行的先後順序由多個cpu進行支撐同時執行多個任務塊

 

什麼是守護線程?

在有線程運行的情況下進行運行的線程

 

創建線程有哪幾種方式?

1、實現Runnable接口並實現run方法

2、繼承Thread接口重寫run方法

3、創建Thread對象時候通過匿名內部類實現

4、使用Callable和Future創建線程

 

runnable 和 callable 有什麼區別?

1、接口定義不同,callable可以有返回值(泛型),runnable不能有返回值

2、callable的cell()方法能夠拋出異常,runnable的run()方法只能內部消化

 

線程有哪幾種狀態?

新建 、等待運行、執行中、阻塞、死亡

 

sleep() 和 wait() 有什麼區別?

1.sleep是Thread的方法,wait是Object的方法

2.sleep()方法導致了程序暫停執行指定的時間,讓出cpu調度給其他線程,但是他的監控狀態依然保持者,當指定的時間到了又會自動恢復運行狀態。在調用sleep()方法的過程中,線程不會釋放對象鎖。

而當調用wait()方法的時候,線程會放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象調用notify()方法後本線程才進入對象鎖定池準備,獲取對象鎖進入運行狀態。

 

notify和notifyAll有什麼區別?

https://blog.csdn.net/djzhao/article/details/79410229

 

Thread.run方法和Thread.start方法的區別?

1.方法定義不同:start()方法在java.lang.Thread類中定義;而run()方法在java.lang.Runnable接口中定義,必須在實現類中重寫

2.方法定義的含義不同:run方法相當於線程的任務處理邏輯的入口方法,start方法的作用是啓動相應的線程

 

創建線程池有哪幾種方式?

https://blog.csdn.net/baidu_32492845/article/details/78621415    

https://blog.csdn.net/hhx0626/article/details/52957818

 

線程池有哪幾種狀態?

https://blog.csdn.net/shahuhubao/article/details/80311992

https://blog.csdn.net/hhx0626/article/details/52957818

 

線程池中 submit()和 execute()方法有什麼區別

https://www.cnblogs.com/liuchuanfeng/p/6956014.html

https://blog.csdn.net/hhx0626/article/details/52957818

 

在 java 程序中怎麼保證多線程的運行安全?

https://blog.csdn.net/weixin_40459875/article/details/80290875

https://blog.csdn.net/michaelehome/article/details/80226205

 

多線程鎖的升級原理是什麼?

https://blog.csdn.net/always_younger/article/details/79462684

 

什麼是死鎖?該如何避免?

https://www.cnblogs.com/hadoop-dev/p/6899171.html

 

ThreadLocal 是什麼?有哪些使用場景?

https://www.cnblogs.com/yxysuanfa/p/7125761.html

 

synchronized 底層實現原理

https://www.cnblogs.com/paddix/p/5367116.html

 

synchronized 和 volatile 的區別是什麼?

https://www.cnblogs.com/kaleidoscope/p/9506018.html

 

synchronized 和 Lock 有什麼區別

https://www.cnblogs.com/iyyy/p/7993788.html

 

synchronized 和 ReentrantLock 區別是什麼?

https://www.cnblogs.com/fanguangdexiaoyuer/p/5313653.html

 

atomic 的原理是?

https://blog.csdn.net/wuzhiwei549/article/details/82621947

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章