社区
C#
帖子详情
大家来看看这样写会不会有并发问题?
zahuifan
2005-03-15 11:01:44
有这样一个类:
class Student {
private static string _name = "";
public void setName(string arg) {
_name = arg;
}
}
由于 _name 是一个静态变量,如果有许多用户同时使用Web页面调用 student.setName("zhf"),会不会有并发冲突的问题,如何避免?
...全文
148
13
打赏
收藏
大家来看看这样写会不会有并发问题?
有这样一个类: class Student { private static string _name = ""; public void setName(string arg) { _name = arg; } } 由于 _name 是一个静态变量,如果有许多用户同时使用Web页面调用 student.setName("zhf"),会不会有并发冲突的问题,如何避免?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tmeteor
2005-03-15
打赏
举报
回复
会,看例子
using System;
namespace CollisionTest
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
Student s1=new Student ();
s1.setName ("first");
Console.WriteLine(Student.Name);
Student s2=new Student ();
s2.setName ("second");
Console.WriteLine(Student.Name);
}
}
class Student
{
private static string _name = "";
public void setName(string arg)
{
_name = arg;
}
public static string Name
{
get
{
return _name;
}
}
}
}
doubon
2005-03-15
打赏
举报
回复
不要声明为静态变量
private string _name = "";
cqzhangq
2005-03-15
打赏
举报
回复
会有冲突,如果一个用户设置了值,那么_name都会改变,会影响所有用户。
写个程序试下就知道了
cqzhangq
2005-03-15
打赏
举报
回复
会有冲突,如果一个用户设置了值,那么_name都会改变,会影响所有用户。
如果要每个用户都独自使用自己的变量,就需要用实例的变量,就是不用静态变量。
心情解码
2005-03-15
打赏
举报
回复
:)
--
xxuu503
2005-03-15
打赏
举报
回复
没有
bomb_boy
2005-03-15
打赏
举报
回复
怎么回事,怎么都是整分钟发帖?
2005-03-15 11:06:00
2005-03-15 11:06:00
2005-03-15 11:07:00
2005-03-15 11:08:00
2005-03-15 11:09:00
难道没有记秒,我还以为大家都这魔巧呢,原来是系统不够精确
bomb_boy
2005-03-15
打赏
举报
回复
同时间回帖,可能微秒不一样,难怪我发帖时速度一下N慢,原来时内部冲突了,呵呵!
bomb_boy
2005-03-15
打赏
举报
回复
回复人: 3tzjq(决定放弃VB.Net,重新学习C#) ( ) 信誉:100 2005-03-15 11:06:00 得分: 0
回复人: bomb_boy(梦之星) ( ) 信誉:95 2005-03-15 11:06:00 得分: 0
tylike
2005-03-15
打赏
举报
回复
ms-help://MS.MSDNQTR.2003FEB.2052/csref/html/vclrflockstatement.htm
spz1755
2005-03-15
打赏
举报
回复
跟一下试试,理论上不知道。
bomb_boy
2005-03-15
打赏
举报
回复
绝对不会
3tzjq
2005-03-15
打赏
举报
回复
不会!如果虽然_name 是静态变量,但类Student 是一个被实例化的对象。所以...
Java
并发
理论基础 - 看完虽然
不会
写代码,吹吹牛逼绝对没
问题
Java
并发
理论基础,包含原子性、有序性、可见性出现的原因,解决办法;在 Java 中如何处理,摘了2位大佬的博客
吸烟者、读者-写者、哲学家进餐
问题
知足常乐 须知少年凌云志,曾许人间第一流 文章目录吸烟者
问题
问题
分析代码实现小结读者--写者
问题
问题
描述
问题
分析代码实现初始化代码细节小结哲学家进餐
问题
问题
描述产生死锁解决方案小结 吸烟者
问题
问题
分析 互斥操作 : 前V后P 代码实现 小结 读者–写者
问题
问题
描述 要求: ①允许多个读者可以同时对文件执行读操作; ②只允许一个写者往文件中写信息; ③任一写者在完成写操作之前不允许其他读者或写者工作; ④写者执行写操作前,应让已有的读者和写者全部退出。 方法: 1、关系分析。找.
写者优先
问题
: 解决多个写者和读者的同步访问
问题
在这种情况下,写者线程可能会长时间地占用共享资源,导致读者线程长时间等待,从而降低系统的性能和响应速度。一种常见的解决方案是利用读者-写者
问题
的变种,引入一个计数器来跟踪当前正在读取共享资源的读者数量。综上所述,通过引入读者-写者
问题
的变种,结合适当的同步机制,可以解决写者优先
问题
,实现多个写者和读者之间的同步访问。在示例代码中,创建了5个读者线程和5个写者线程,并启动它们进行读取和写入操作。通过运行代码,可以观察到读者和写者线程按照一定的顺序访问共享资源,实现了写者优先
问题
的解决。
多进程、多线程
并发
写同一log文件
问题
两个独立进程各自打开同一个文件 如果用O_APPEND标志打开了一个文件,则相应标志也被设置到文件表项的文件状态标志中。每次对这种具有添写标志的文件执行写操作时,在文件表项中的当前文件偏移量首先被设置为i节点表项中的文件长度。这就使得每次写的数据都添加到文件的当前尾端处。 UNIX系统提供了一种方法使得以下操作成为原子操作,该方法是在打开文件时设置O_APPEN
【操作系统】第四次作业——解决写者饥饿
问题
、吃水果
问题
、过桥
问题
南航操作系统第四次作业。
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章