测试Lock的供调用方法

private static object lockObjet = new object();
[WebMethod]
public string HelloWorld()
{//lock (lockObjet){string a = "无Locktest如果时间间隔相差等于30秒,说明是单线程访问" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");WriteTraceLog(a);System.Threading.Thread.Sleep(30 * 1000);}lock (lockObjet){string a = "Locktest如果时间间隔相差等于30秒,说明Lcok起作用了"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");WriteTraceLog(a);System.Threading.Thread.Sleep(30 * 1000);}return "Hello World";
}

写访问时间日志的方法

private bool WriteTraceLog(string aLogText)
{string LogPath = "c:\\HisLog\\" ;string aLogFileName = "WebServiceLock测试.log";string aLogPath = LogPath;if (!Directory.Exists(LogPath))Directory.CreateDirectory(LogPath);try{string FullLogText = aLogText;string LogFileName;LogFileName = aLogPath + aLogFileName ;FileStream fs = new FileStream(LogFileName, FileMode.Append);StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);sw.WriteLine(FullLogText);sw.Close();return true;}catch{return false;}
}

测试

进行连续两次的访问

测试结果

结论

  • 在供调用方法的开始位置写日志,发现连续的两次调用写入的时间是一样的,说明Webservice的调用时不需要排队的。
  • 在lock (lockObjet)中写的日志第一次访问和第二次访问的时间却差了30秒,正好是第一次访问休眠的时间,说明Lock锁起到了作用。
  • 那么当我们在webservice中处理需要进行单例执行的操作时,可以使用Lock进行控制

C#关于WebService中Lock锁是否起作用的测试积累相关推荐

  1. java中Lock锁的应用简介

    java中Lock锁的应用简介 整体描述 方法介绍 1. void lock() 2. boolean tryLock() 3. boolean tryLock(long timeout, TimeU ...

  2. Linux中lock和unlock的作用,lock与unlock

    传说有一本江湖罕见的武功秘籍,该书珍藏在主持大师手中.一天大师盛情邀请江湖好汉前来观摩该书,但是一次只能有一个人来看. 该怎么办呢?用synchronized来实现吗?都用臭了,算了.用下李狗(Dou ...

  3. Android之monkey Test,Monkey测试中的黑名单和白名单,Monkey测试中的黑名单和白名单

    一.Monkey简介 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行 ...

  4. java 中lock,java中lock获取锁的四种方法

    在java接口中会存放着许多方法,方便线程使用时的直接调用.对于lock接口大家都不陌生,我们已经初步对概念进行了理解.那么在获取锁的方法上想必还不是很清楚.下面我们就lock获取锁的四种方法分别进行 ...

  5. java 代码锁_Java中的Lock锁

    Lock锁介绍: 在java中可以使用 synchronized 来实现多线程下对象的同步访问,为了获得更加灵活使用场景.高效的性能,java还提供了Lock接口及其实现类ReentrantLock和 ...

  6. 自旋锁和互斥锁的区别 java中lock Syntronized区别

    转载自:http://blog.csdn.net/susidian/article/details/51068858 自旋锁(Spin lock) 自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠 ...

  7. oracle查看dml锁表,【lock】我所认识的Oracle中的锁,DML锁、DDL锁、闩和内部锁。...

    这个问题很简单,你一定对锁有一个认识,但你未必对锁有一个明确的定义. 官方文档这样描述:Locks are mechanisms that prevent destructive interactio ...

  8. 多线程 流水线 java_Java Lock锁多线程中实现流水线任务

    下面程序代码通过使用Lock锁执行简单的流水线任务: import java.util.concurrent.locks.Condition; import java.util.concurrent. ...

  9. Java 中的Lock锁

    Lock锁,可以得到和 synchronized一样的效果,即实现原子性.有序性和可见性. 相较于synchronized,Lock锁可手动获取锁和释放锁.可中断的获取锁.超时获取锁. Lock 是一 ...

最新文章

  1. Linux内核同步机制之(四):spin lock【转】
  2. idea mybatis generator插件_Mybatis使用自定义插件去掉POJO的Getter和Setter方法
  3. AJAX GET的请求
  4. spring jdbctemplate源码跟踪
  5. 全球及中国家用非金属材质水槽行业产销模式及投资规模预测报告2022-2027年
  6. 如何学习Python课程
  7. EXT中创建一个弹窗效果
  8. 【C++拾遗】 从内存布局看C++虚继承的实现原理
  9. python好玩的代码_一行 Python 能实现什么丧心病狂的功能?
  10. ASP.NET 多环境下配置文件web.config的灵活配置---转
  11. linux网络编程客户端,Linux网络编程入门
  12. 问题三十三:怎么用ray tracing画特殊长方体(box)
  13. BAT频繁与移动医疗挂钩 预示行业即将爆发?
  14. JavaScript基础
  15. linux dhcpv6 客户端,Linux(RedHat6.4)下配置radvd和dhcpv6
  16. C++综合练习——身份证
  17. url 里面 等号_【Python成长之路】从零学爬虫给微信公众号阅读量作个弊:刷阅读量...
  18. Python学习日记07
  19. 广东工程职业技术学院计算机二级,高职高考必看|全面了解广东工程职业技术学院...
  20. [文献阅读]—Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation

热门文章

  1. 怎么把 html做成雪花特效,CSS3 HTML5下雪特效 雪花飘飘
  2. C加密 java_c语言的des加密,怎么用java解密
  3. C语言 数组中删除指定字符
  4. 需要规范日志格式_Node开发的日志规范
  5. kafka集群 kubernetes_为什么Kubernetes如此受欢迎?
  6. 岗位理解_如何正确理解策划岗位
  7. beego mysql按时间排序_beego的数据库操作优化
  8. zk pivottable java_zookeeper节点类型和java客户端创建zk节点
  9. Linux内核无法放到Ubuntu中,无法通过Linux内核模块(Ubuntu)在内核内存中写入
  10. 解决微信0day上线CobaltStike的几个问题