gpt4 book ai didi

c# - 类级别的公共(public)属性是线程安全的

转载 作者:行者123 更新时间:2023-11-30 12:35:42 25 4
gpt4 key购买 nike

如果 w3wp.exe 是负责满足 Web 应用程序所有传入请求的进程(如果我错了请纠正我),并且如果我有一个类,我们就这样调用它为 Customer

public class Customer  
{
public string FirstName{get;set;}
public string LastName{get;set;}
}

所以现在当像这样在代码中访问这个类时

 var customer = new Customer();

在堆中创建了一个实例,并且在 w3wp.exe 中运行的所有线程都可以访问客户对象的 FirstName 和 LastName 属性。

那么,在这种情况下,FirstName 和 LastName 属性不是线程安全的吗?使用仅属于特定实例且线程安全的私有(private)属性总是明智的吗?

最佳答案

虽然编译器为自动属性创建了一个支持字段,但它不会在其上创建任何同步。

至于线程安全——这取决于您在线程中对此类对象执行的操作。如果每个线程有一个不同的对象,没问题。

如果您从多个线程访问相同对象(即共享资源),情况会有所不同:

如果您所做的只是读取 一个值而不是设置 从多个线程中,则没有问题。

如果您修改来自多个线程的对象,可能会出现问题。这需要同步,您可以将其添加到您的线程代码中。

关于c# - 类级别的公共(public)属性是线程安全的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4930848/

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