麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

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

2019-11-15 00:01:01
字體:
來源:轉載
供稿:網友
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個資源同時又不導致死鎖?  使用多線程的時候,一種非常簡單的避免死鎖的方式就是:指定獲取鎖的順序,并強制線程按照指定的順序獲取鎖。因此,如果所有的線程都是以同樣的順序加鎖和釋放鎖,就不會出現死鎖了。


上一篇:線性表簡述

下一篇:對象死了嗎?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美xxxx精品另类 | 成人午夜免费观看 | 看免费黄色大片 | 久久99精品久久久久久园产越南 | 毛片网站网址 | 国产69精品久久久久久久久久 | 视屏一区 | 成人免费观看在线视频 | av久草 | 国产高潮国产高潮久久久91 | 亚洲精品午夜国产va久久成人 | 免费在线性爱视频 | 国产成人av一区 | www.99re14.com | 国产99久久精品 | 国产毛片在线看 | 中文字幕 亚洲一区 | 男人午夜小视频 | 久久国产精品免费视频 | 欧美aaaaaaaa| 日韩欧美激情视频 | 久久久一区二区三区精品 | 人人舔人人舔 | 线观看免费完整aaa 欧美在线一级 | 一区二区三区视频在线观看 | 精品国产一区二区亚洲人成毛片 | 欧美高清一级片 | 在线观看中文字幕av | 久久免费观看一级毛片 | 亚洲精品一区二区三区免 | 精品久久久久久国产 | 久久丝袜脚交足黄网站免费 | 在线观看一二区 | xxx日本视频 | 羞羞的动漫在线观看 | 国产在线一级片 | 国产一精品久久99无吗一高潮 | av在线播放网址 | 成人免费毛片在线观看 | 亚洲成人国产综合 | 国产无遮挡一区二区三区毛片日本 |