真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

VisualStudio怎么實(shí)現(xiàn)死鎖

這篇文章主要介紹“Visual Studio怎么實(shí)現(xiàn)死鎖”的相關(guān)知識,小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“Visual Studio怎么實(shí)現(xiàn)死鎖”文章能幫助大家解決問題。

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計,蘭考網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:蘭考等地區(qū)。蘭考做網(wǎng)站價格咨詢:13518219792

首先要承認(rèn)這個標(biāo)題有那么一丁點(diǎn)標(biāo)題黨,但這又不是完全的標(biāo)題黨。使用“正確”的調(diào)試方法的確可以把 VS 給搞死鎖了。至于 VS 被死鎖了算不算 Bug,這個問題有待于商榷。不想吐槽,先看看怎么用“正確”的方法把 VS 搞死鎖。

首先要新建一個控制臺項(xiàng)目,完整的復(fù)制下列代碼:

using System.Threading;  namespace DeadlockVS  {  class Program  {  static object _obj = new object();  static void Main(string[] args)  {  Thread.CurrentThread.Name = "Main Thread";  ThreadStart ts = () =>  {  while (true)  {  lock (_obj)  Thread.Sleep(100);  Thread.Sleep(1);   }  };  for (int i = 0; i <2; i++)  new Thread(ts).Start();  Thread.Sleep(1000);   ts();  }  static int Get()  {  lock (_obj)  return 1;  }   }  }

然后在正確的位置插上正確的斷點(diǎn):

Visual Studio怎么實(shí)現(xiàn)死鎖

然后在即時窗口里面輸入:Get()

Visual Studio怎么實(shí)現(xiàn)死鎖

現(xiàn)在你的 VS 有99.99%的概率會到達(dá)一種“死鎖”狀態(tài)(如果沒有被死鎖,恭喜你,你現(xiàn)在就可以去買雙色球,記得中獎了分大家一點(diǎn))。IDE 在等待寄主進(jìn)程返回結(jié)果,而寄主進(jìn)程又需要等待其中的某一個線程釋放鎖,又因?yàn)樘幵谡{(diào)試狀態(tài),寄主進(jìn)程沒辦法繼續(xù)執(zhí)行下一步代碼,也就無法釋放鎖,最終導(dǎo)致了一個死鎖的存在。雖然是死鎖,但是 VS 的 UI 并沒有被鎖死,所以我們現(xiàn)在***能做的事情就是結(jié)束調(diào)試。

現(xiàn)在實(shí)驗(yàn)結(jié)束,大家來討論下這算不算是 VS 的一個 Bug?

正方觀點(diǎn):

會影響正常調(diào)試,當(dāng)然算 Bug

只要導(dǎo)致程序非正常終止的都算 Bug

反方觀點(diǎn):

是你自己調(diào)試方法不正確,不能怪 VS

BUG本身是錯誤,是不按正常的理解執(zhí)行,不是說死鎖就是有BUG

怎么才能解決這一“Bug”?

從程序員自身角度考慮,只有增加自身編碼能力和調(diào)試能力

從 VS 健壯角度考慮,可以使用沙箱模式,并檢測到在執(zhí)行一定時間還未得出結(jié)果后,主動退出。

關(guān)于“Visual Studio怎么實(shí)現(xiàn)死鎖”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點(diǎn)。


網(wǎng)站標(biāo)題:VisualStudio怎么實(shí)現(xiàn)死鎖
鏈接分享:http://weahome.cn/article/gghojh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部