国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C#加鎖的例程

這篇具有很好參考價(jià)值的文章主要介紹了C#加鎖的例程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;

namespace LockTest
{
class Program
{
static void Main(string[] args)
{
TestLock testlock = new TestLock();
Thread th = new Thread(() =>
{
//模擬死鎖:造成死鎖,使lock無(wú)法釋放,在i=5時(shí),跳出死循環(huán),釋放lock
testlock.DoWorkWithLock();
});
th.Start();
Thread.Sleep(1000);
Thread th2 = new Thread(() =>
{
//這個(gè)地方你可能會(huì)有疑惑,但存在這種情況,比如你封裝的dll,對(duì)其它開(kāi)發(fā)人員不是可見(jiàn)的
//開(kāi)發(fā)人員很有可能在他的邏輯中,加上一個(gè)lock保證方法同時(shí)被一個(gè)線(xiàn)程調(diào)用,但這時(shí)有其它的線(xiàn)程正在調(diào)用該方法,
//但并沒(méi)有釋放,死鎖了,那么在這里就不會(huì)被執(zhí)行,除非上面的線(xiàn)程釋放了lock鎖定的對(duì)象。這里的lock也可以理解為一個(gè)標(biāo)識(shí),線(xiàn)程1被鎖定的對(duì)象
//是否已經(jīng)被釋放,
//如果沒(méi)有釋放,則無(wú)法繼續(xù)訪(fǎng)問(wèn)lock塊中的代碼。
lock (testlock)
{
// 如果該對(duì)象中l(wèi)ock(this)不釋放(testlock與this指的是同一個(gè)對(duì)象),則其它線(xiàn)程如果調(diào)用該方法,則會(huì)出現(xiàn)直到lock(this)釋放后才能繼續(xù)調(diào)用。
testlock.MotherCallYouDinner();
testlock.DoWorkWithLock();
}
});
th2.Start();
Console.Read();
}
}文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-534200.html

class TestLock
{
    public static readonly object objLock = new object();
    /// <summary>
    ///  該方法,希望某人在工作的時(shí)候,其它人不要打擾(希望只有一個(gè)線(xiàn)程在執(zhí)行)
    /// </summary>
    /// <param name="methodIndex"></param>
    public void DoWorkWithLock()
    {
        //鎖當(dāng)前對(duì)象
        lock (this)
        {
            Console.WriteLine("lock this");
            int i = 0;
            while (true)
            {
                Console.WriteLine("At work, do not disturb...,Thread id is " + Thread.CurrentThread.ManagedThreadId.ToString());
                Thread.Sleep(1000);
                if (i == 5)
                {
                    break;
                }
                Console.WriteLine(i.ToString());
                i++;
            }
        }
        Console.WriteLine("lock dispose");
    }
    public void MotherCallYouDinner()
    {
        Console.WriteLine("Your mother call you to home for dinner.");
    }
}
}

到了這里,關(guān)于C#加鎖的例程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C# 中多線(xiàn)程鎖的使用經(jīng)驗(yàn)

    C# 中多線(xiàn)程鎖的使用經(jīng)驗(yàn):全局鎖,實(shí)例鎖 ????????private static object _exeLock = new object(); ? ? ? ?static 靜態(tài)的是全應(yīng)用程序的資源。如果在一個(gè)類(lèi)里定義了這樣一個(gè)鎖,你在調(diào)用使用這個(gè)類(lèi)的時(shí)候,是NEW了一個(gè)對(duì)象,并把這個(gè)對(duì)象給了一個(gè)靜態(tài)全局變量中保存。這時(shí)這個(gè)鎖

    2024年03月14日
    瀏覽(27)
  • C# winform加載yolov8模型測(cè)試(附例程)

    C# winform加載yolov8模型測(cè)試(附例程)

    第一步:在NuGet中下載Yolov8.Net ? 第二步:引用? using Yolov8Net; 第三步:加載模型 private IPredictor yolov8 = YoloV8Predictor.Create(\\\"D:\\\\0MyWork\\\\Learn\\\\vs2022\\\\yolov_onnx\\\\best.onnx\\\", mylabel); 第四步:圖像預(yù)測(cè) var predictions = yolov8.Predict(\\\"D:\\\\MyComputer\\\\Pictures\\\\14.jpg\\\"); ?預(yù)測(cè)結(jié)果: 完整例程: 鏈接:ht

    2024年02月11日
    瀏覽(14)
  • 運(yùn)動(dòng)控制-達(dá)妙C#開(kāi)源USB2CAN例程

    運(yùn)動(dòng)控制-達(dá)妙C#開(kāi)源USB2CAN例程

    C# Can總線(xiàn)資料不多, 達(dá)妙USB2CAN入口 http://www.dmbot.cn/forum.php?mod=viewthreadtid=328extra=page%3D1

    2024年02月16日
    瀏覽(15)
  • 關(guān)于FPGA如何快速生成模塊的例化模板(實(shí)用)

    關(guān)于FPGA如何快速生成模塊的例化模板(實(shí)用)

    關(guān)于FPGA如何快速生成模塊的例化模板(實(shí)用) 語(yǔ)言 :Verilg HDL 、VHDL EDA工具:ISE、Vivado、Quartus II 一、引言 在FPGA開(kāi)發(fā)中,最常用的設(shè)計(jì)方式是 自頂層向下的模塊化設(shè)計(jì) ,將設(shè)計(jì)要求分成一個(gè)個(gè)的子模塊,負(fù)責(zé)實(shí)現(xiàn)不通的功能,頂層負(fù)責(zé)調(diào)用這些子模塊,并負(fù)責(zé)子模塊之間的

    2023年04月08日
    瀏覽(19)
  • MySQL的加鎖規(guī)則

    MySQL的加鎖規(guī)則

    學(xué)習(xí)了MySQL的鎖后,知道其有這么多鎖,那應(yīng)該會(huì)有些疑惑,這么多鎖,究竟我在寫(xiě)sql語(yǔ)句時(shí)候用到哪個(gè)鎖的,什么情況是用什么鎖的?在哪里查看該sql語(yǔ)句是用了哪些鎖的呢?加鎖的規(guī)則是什么呢?這篇文章就來(lái)解決這些疑惑。 MySQL的默認(rèn)存儲(chǔ)引擎是innodb,而我們常用的也

    2024年03月13日
    瀏覽(14)
  • Mysql加鎖過(guò)程

    Mysql加鎖過(guò)程

    MySQL/InnoDB的加鎖分析,一直是一個(gè)比較困難的話(huà)題。我在工作過(guò)程中,經(jīng)常會(huì)有同事咨詢(xún)這方面的問(wèn)題。同時(shí),微博上也經(jīng)常會(huì)收到MySQL鎖相關(guān)的私信,讓我?guī)椭鉀Q一些死鎖的問(wèn)題。本文,準(zhǔn)備就MySQL/InnoDB的加鎖問(wèn)題,展開(kāi)較為深入的分析與討論,主要是介紹一種思路,運(yùn)

    2024年02月14日
    瀏覽(15)
  • (5)(5.2) 解鎖和加鎖

    (5)(5.2) 解鎖和加鎖

    文章目錄 1 解鎖電機(jī) 2 加鎖電機(jī) 解鎖飛行器可以使電機(jī)開(kāi)始旋轉(zhuǎn)。在解鎖前,確保所有的人、物體和任何身體部位(如手)都遠(yuǎn)離螺旋槳。然后做以下工作: ! Note 你只能在 Stabilize 、 ACRO 、 AltHold 、 Loiter 和 PosHold 模式下解鎖或加鎖。你不能在自動(dòng)模式下解鎖你的飛行器。

    2023年04月16日
    瀏覽(21)
  • MySQL InnoDB加鎖規(guī)則分析

    MySQL InnoDB加鎖規(guī)則分析

    1.? 基礎(chǔ)知識(shí)回顧 1、索引的有序性,索引本身就是有序的 2、InnoDB中間隙鎖的唯一目的是防止其他事務(wù)插入間隙。間隙鎖可以共存。一個(gè)事務(wù)取得的間隙鎖并不會(huì)阻止另一個(gè)事務(wù)取得同一間隙上的間隙鎖。共享和獨(dú)占間隔鎖之間沒(méi)有區(qū)別。它們彼此之間不沖突,并且執(zhí)行相同

    2024年02月04日
    瀏覽(12)
  • linux|進(jìn)程間通信如何加鎖

    linux|進(jìn)程間通信如何加鎖

    進(jìn)程間通信有一種[共享內(nèi)存]方式,大家有沒(méi)有想過(guò),這種通信方式中如何解決數(shù)據(jù)競(jìng)爭(zhēng)問(wèn)題?我們可能自然而然的就會(huì)想到用鎖。但我們平時(shí)使用的鎖都是用于解決線(xiàn)程間數(shù)據(jù)競(jìng)爭(zhēng)問(wèn)題,貌似沒(méi)有看到過(guò)它用在進(jìn)程中,那怎么辦? ?關(guān)于進(jìn)程間的通信方式估計(jì)大多數(shù)人都知

    2024年02月02日
    瀏覽(19)
  • 從根本上理解Synchronized的加鎖過(guò)程

    從根本上理解Synchronized的加鎖過(guò)程

    作為一個(gè)Java開(kāi)發(fā),對(duì)于Synchronized這個(gè)并不會(huì)陌生,無(wú)論是并發(fā)編程,還是與面試官對(duì)線(xiàn),Synchronized可以說(shuō)是必不可少。 在JDK1.6之前,都認(rèn)為Synchronized是一個(gè)非常笨重的鎖,就是在之前的《談?wù)凧ava中的鎖》中提到的重量級(jí)鎖。但是在JDK1.6對(duì)Synchronized進(jìn)行優(yōu)化后,Synchr

    2024年02月02日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包