偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Java編程語(yǔ)言如何完善自己的缺點(diǎn)

開(kāi)發(fā) 后端
Java編程語(yǔ)言在很多人看來(lái)是既簡(jiǎn)單又使用的編程語(yǔ)言,但是我們還不能一味的迷信這些,下面我們來(lái)看看Java編程語(yǔ)言的有關(guān)缺點(diǎn)。

Java編程語(yǔ)言如何才能保證自己的相關(guān)缺點(diǎn)不會(huì)影響在實(shí)際的使用呢?下面我們就看看如何才能更好的完善Java編程語(yǔ)言的相關(guān)缺點(diǎn)。我前面提到過(guò),必須調(diào)用新創(chuàng)建的線(xiàn)程的 start() 方法來(lái)啟動(dòng)它的執(zhí)行。

但是,僅僅是調(diào)用 start() 方法并不意味著線(xiàn)程會(huì)立即開(kāi)始運(yùn)行。這個(gè)方法只是把線(xiàn)程的狀態(tài)從 new 變成 runnable。只有在操作系統(tǒng)真正安排線(xiàn)程執(zhí)行的時(shí)候,線(xiàn)程狀態(tài)才會(huì)變成 running (從 runnable)。

Java編程語(yǔ)言常見(jiàn)缺陷

正如我已經(jīng)展示過(guò)的,Java編程語(yǔ)言中的多線(xiàn)程編程是通過(guò)語(yǔ)言支持的大量精心設(shè)計(jì)的構(gòu)造實(shí)現(xiàn)的。另外,還設(shè)計(jì)了大量設(shè)計(jì)模式和指導(dǎo)原則,來(lái)幫助人們了解這種復(fù)雜性帶來(lái)的許多缺陷。除此之外,多線(xiàn)程編程會(huì)很容易地在不經(jīng)意間把細(xì)微的 bug 帶進(jìn)多線(xiàn)程代碼,而且更重要的是,這類(lèi)問(wèn)題分析和調(diào)試起來(lái)非常困難。接下來(lái)要介紹的是用 Java 語(yǔ)言進(jìn)行多線(xiàn)程編程時(shí)將會(huì)遇到(或者可能已經(jīng)遇到過(guò))的最常見(jiàn)問(wèn)題的一個(gè)列表。#t#

Java編程語(yǔ)言爭(zhēng)用條件

據(jù)說(shuō) 爭(zhēng)用條件 存在于這樣的系統(tǒng)中:多個(gè)線(xiàn)程之間存在對(duì)共享資源的競(jìng)爭(zhēng),而勝出者決定系統(tǒng)的行為。Allen Holub 在他撰寫(xiě)的文章 “programming Java threads in the real world” 提供了一個(gè)帶有這樣 bug 的簡(jiǎn)單的多線(xiàn)程程序示例。在沖突的訪(fǎng)問(wèn)請(qǐng)求之間進(jìn)行不正確同步的另一個(gè)更可怕的后果是 數(shù)據(jù)崩潰,此時(shí),共享的數(shù)據(jù)結(jié)構(gòu)有一部分由一個(gè)線(xiàn)程更新,而另一部分由另一個(gè)線(xiàn)程更新。在這種情況下,系統(tǒng)的行為不是按照勝出線(xiàn)程的意圖進(jìn)行,系統(tǒng)根本不按照任何一個(gè)線(xiàn)程的意圖行動(dòng),所以?xún)蓚€(gè)線(xiàn)程***都將以失敗告終。

Java編程語(yǔ)言死鎖

死鎖 的情況是指:線(xiàn)程由于等候某種條件變成真(例如資源可以使用),但是它等候的條件無(wú)法變成真,因?yàn)槟軌蜃寳l件變成真的線(xiàn)程在等候***個(gè)線(xiàn)程“做某件事”。這樣,兩個(gè)線(xiàn)程都在等候?qū)Ψ较炔扇?**步,所以都無(wú)法做事。

Java編程語(yǔ)言活動(dòng)鎖

活動(dòng)鎖 與 死鎖 不同,它是在線(xiàn)程實(shí)際工作的時(shí)候發(fā)生的,但這時(shí)還沒(méi)有完成工作。這通常是在兩個(gè)線(xiàn)程交叉工作的時(shí)候發(fā)生,所以***個(gè)線(xiàn)程做的工作被另一個(gè)線(xiàn)程取消。一個(gè)簡(jiǎn)單的示例就是:每個(gè)線(xiàn)程已經(jīng)擁有了一個(gè)對(duì)象,同時(shí)需要另外一個(gè)線(xiàn)程擁有的另外一個(gè)對(duì)象??梢韵胂襁@樣的情況:每個(gè)線(xiàn)程放下自己擁有的對(duì)象,撿起另外一個(gè)線(xiàn)程放下的對(duì)象。顯然,這兩個(gè)線(xiàn)程會(huì)永遠(yuǎn)都運(yùn)行在上鎖這一步操作上,結(jié)果是什么都做不成。(常見(jiàn)的真實(shí)示例就是,兩個(gè)人在狹窄的走廊相遇。每個(gè)人都禮貌地讓到另一邊讓對(duì)方先行,但卻在相同的時(shí)間都讓到同一邊了,所以?xún)蓚€(gè)人還都沒(méi)法通過(guò)。這種情況會(huì)持續(xù)一些時(shí)間,然后兩個(gè)人都從這邊閃到那邊,結(jié)果還是一點(diǎn)進(jìn)展也沒(méi)有。)

 

責(zé)任編輯:張浩 來(lái)源: CSDN
相關(guān)推薦

2015-03-16 09:18:53

2010-03-16 16:47:58

Java編程語(yǔ)言

2020-11-14 15:49:40

編程語(yǔ)言C語(yǔ)言Java

2011-04-08 11:15:20

編程語(yǔ)言編程游戲開(kāi)發(fā)

2019-11-15 13:26:17

編程語(yǔ)言微軟C語(yǔ)言

2011-04-08 10:49:35

編程語(yǔ)言編程游戲開(kāi)發(fā)

2021-10-10 12:45:13

編程語(yǔ)言開(kāi)發(fā)

2022-09-07 08:05:32

GScript?編程語(yǔ)言

2015-06-08 14:27:35

谷歌蘋(píng)果編程語(yǔ)言

2010-03-12 16:15:06

Python調(diào)試

2012-11-15 09:49:42

C語(yǔ)言MVCMAKEFILE

2023-02-09 07:38:05

Python編程語(yǔ)言

2010-03-19 18:00:43

Java編程語(yǔ)言

2012-02-02 10:10:56

2018-11-11 15:29:13

大數(shù)據(jù)語(yǔ)言Java

2010-03-19 18:09:35

Java編程語(yǔ)言

2021-04-11 09:59:03

編程語(yǔ)言數(shù)據(jù)分析Python

2010-03-16 18:24:44

Java線(xiàn)程模型

2020-08-18 10:58:05

區(qū)塊鏈比特幣區(qū)塊鏈戰(zhàn)略

2013-05-29 09:47:42

編程語(yǔ)言移動(dòng)開(kāi)發(fā)java
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)