C#静态方法在多用户并发访问时,运行情况到底是什么样?是排队等待?还是并发的?
2011-03-01 17:31 通用C#系统架构 阅读(14360) 评论(98) 编辑 收藏 举报曾经有个错误的认识,一直以为静态方法在多用户并发下会是排队等待,一个个执行,前些日子与朋友 单程列车 http://www.cnblogs.com/zhaojingjing/ 一起做了测试后才发现,原来是并发执行的,绝对不会排队等待。
写程序的不能怕丢人有错就改,积极改正错误,一天比一天上一个台阶就好。
模拟并发的测试代码如下,希望对有需要的朋友提供的方便的参考
// All Rights Reserved , Copyright (C) 2011 , Hairihan TECH, Ltd.
//--------------------------------------------------------------------
namespace DotNet.Example
{
using DotNet.BaseManager;
public class StaticTest
{
/// <summary>
/// 定义委托
/// </summary>
/// <param name="user">用户</param>
delegate void MakeStaticDelegate(string user);
/// <summary>
/// 这里是测试静态方法
/// </summary>
/// <param name="user">用户</param>
private static void MakeStaticTest(string user)
{
for (int i = 0; i < 10; i++)
{
// 输出当前的变量
System.Console.WriteLine(user + ":" + i.ToString());
System.Threading.Thread.Sleep(1000);
}
}
/// <summary>
/// 这里是模拟多用户同时点击并发
/// </summary>
public void DoTest()
{
// 模拟3个用户的并发操作
MakeStaticDelegate makeStaticDelegate1 = new MakeStaticDelegate(MakeStaticTest);
makeStaticDelegate1.BeginInvoke("user1", null, null);
MakeStaticDelegate makeStaticDelegate2 = new MakeStaticDelegate(MakeStaticTest);
makeStaticDelegate2.BeginInvoke("user2", null, null);
MakeStaticDelegate makeStaticDelegate3 = new MakeStaticDelegate(MakeStaticTest);
makeStaticDelegate3.BeginInvoke("user3", null, null);
System.Console.ReadLine();
}
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验