国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java多線程中常見的幾個問題

Java多線程中常見的幾個問題

2019-12-17 13:25mdxy-dxy JAVA教程

這篇文章主要介紹了Java多線程中常見的幾個問題 ,需要的朋友可以參考下

我們都知道,在java中要想實現多線程,有兩種手段,一種是繼續Thread類,另外一種是實現Runable接口。

1.進程和線程的區別是什么?

進程是執行著的應用程序,而線程是進程內部的一個執行序列。一個進程可以有多個線程。線程又叫做輕量級進程。

2.創建線程有幾種不同的方式?你喜歡哪一種?為什么?

有三種方式可以用來創建線程:

(1)繼承Thread類

(2)實現Runnable接口

(3)應用程序可以使用Executor框架來創建線程池

實現Runnable接口這種方式更受歡迎,因為這不需要繼承Thread類。在應用設計中已經繼承了別的對象的情況下,這需要多繼承(而Java不支持多繼承),只能實現接口。同時,線程池也是非常高效的,很容易實現和使用。

3.概括的解釋下線程的幾種可用狀態。

線程在執行過程中,可以處于下面幾種狀態:

就緒(Runnable):線程準備運行,不一定立馬就能開始執行。

運行中(Running):進程正在執行線程的代碼。

等待中(Waiting):線程處于阻塞的狀態,等待外部的處理結束。

睡眠中(Sleeping):線程被強制睡眠。

I/O阻塞(Blocked on I/O):等待I/O操作完成。

同步阻塞(Blocked on Synchronization):等待獲取鎖。

死亡(Dead):線程完成了執行。

4.同步方法和同步代碼塊的區別是什么?

在Java語言中,每一個對象有一把鎖。線程可以使用synchronized關鍵字來獲取對象上的鎖。synchronized關鍵字可應用在方法級別(粗粒度鎖)或者是代碼塊級別(細粒度鎖)。

5.在監視器(Monitor)內部,是如何做線程同步的?程序應該做哪種級別的同步?

監視器和鎖在Java虛擬機中是一塊使用的。監視器監視一塊同步代碼塊,確保一次只有一個線程執行同步代碼塊。每一個監視器都和一個對象引用相關聯。線程在獲取鎖之前不允許執行同步代碼。

6.什么是死鎖(deadlock)?

兩個進程都在等待對方執行完畢才能繼續往下執行的時候就發生了死鎖。結果就是兩個進程都陷入了無限的等待中。

7.如何確保N個線程可以訪問N個資源同時又不導致死鎖?

使用多線程的時候,一種非常簡單的避免死鎖的方式就是:指定獲取鎖的順序,并強制線程按照指定的順序獲取鎖。因此,如果所有的線程都是以同樣的順序加鎖和釋放鎖,就不會出現死鎖了。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 一区福利| 国产欧美日韩一级大片 | 国产精品精品视频 | 国产欧美久久久久久 | 免费的av | 久久久毛片 | 日本一区二区三区日本免费 | 欧美日韩国产在线播放 | 懂色av中文字幕一区二区三区 | 黄色高清网站 | 国产精品剧情一区二区三区 | 国产美女自拍视频 | 亚洲综合激情网 | 日韩精品免费视频 | 欧美黄色片 | 欧美精品乱码久久久久久按摩 | 黄版视频在线观看 | 欧美一级片在线 | 久久久久国产一级毛片高清片 | 国产一区二区三区在线免费 | 色狠狠久久av五月综合 | 亚洲成人精选 | 免费日韩 | 免费视频一区 | 亚洲经典一区 | 日韩视频在线观看一区 | 日一区二区三区 | 国产高潮久久 | 欧洲精品码一区二区三区免费看 | 日韩国产欧美 | 国产精品久久久久国产精品 | 视频一区二区三区在线观看 | 久草 在线 | www.在线播放| 美女超碰 | 欧美在线观看一区 | 日本黄色免费播放 | 国内偷拍av | 欧美日本韩国一区二区三区 | 国产精品久久久久久久久久久小说 | 18视频在线观看网站 |