gpt4 book ai didi

c# synchronization 锁的行为方式

转载 作者:行者123 更新时间:2023-11-30 14:59:25 27 4
gpt4 key购买 nike

我对 c# 中的线程有疑问。请参阅下面发布的代码。

 public class TestThreading
{
private System.Object lockThis = new System.Object();

public void Function1()
{

lock (lockThis)
{
// Access thread-sensitive resources.
}
}

public void Function2(){
lock (lockThis)
{
// Access thread-sensitive resources.
}

}

}

现在我的问题是,如果一些线程进入 Function1(在锁 block 内)并且同时另一个线程进入 Function2 会发生什么

  1. 线程将独立执行。
  2. 进入 Function 2 的线程 Goes to wait until lock is release by Funtion1 thread.
  3. 进入函数2的线程抛出异常。

我是 c# 的新手,因此问了一些简单的基本问题。提前致谢。

最佳答案

进入Function 2的线程Goes等待,直到Funtion1线程释放锁。

锁的目的只是:提供一个“安全”的代码区域,一次只能由一个线程访问。另一个线程将进入休眠状态,并在第一个线程释放锁时恢复。

关于c# synchronization 锁的行为方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16811191/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com