C#关于WebService中Lock锁是否起作用的测试积累
测试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锁是否起作用的测试积累相关推荐
- java中Lock锁的应用简介
java中Lock锁的应用简介 整体描述 方法介绍 1. void lock() 2. boolean tryLock() 3. boolean tryLock(long timeout, TimeU ...
- Linux中lock和unlock的作用,lock与unlock
传说有一本江湖罕见的武功秘籍,该书珍藏在主持大师手中.一天大师盛情邀请江湖好汉前来观摩该书,但是一次只能有一个人来看. 该怎么办呢?用synchronized来实现吗?都用臭了,算了.用下李狗(Dou ...
- Android之monkey Test,Monkey测试中的黑名单和白名单,Monkey测试中的黑名单和白名单
一.Monkey简介 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行 ...
- java 中lock,java中lock获取锁的四种方法
在java接口中会存放着许多方法,方便线程使用时的直接调用.对于lock接口大家都不陌生,我们已经初步对概念进行了理解.那么在获取锁的方法上想必还不是很清楚.下面我们就lock获取锁的四种方法分别进行 ...
- java 代码锁_Java中的Lock锁
Lock锁介绍: 在java中可以使用 synchronized 来实现多线程下对象的同步访问,为了获得更加灵活使用场景.高效的性能,java还提供了Lock接口及其实现类ReentrantLock和 ...
- 自旋锁和互斥锁的区别 java中lock Syntronized区别
转载自:http://blog.csdn.net/susidian/article/details/51068858 自旋锁(Spin lock) 自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠 ...
- oracle查看dml锁表,【lock】我所认识的Oracle中的锁,DML锁、DDL锁、闩和内部锁。...
这个问题很简单,你一定对锁有一个认识,但你未必对锁有一个明确的定义. 官方文档这样描述:Locks are mechanisms that prevent destructive interactio ...
- 多线程 流水线 java_Java Lock锁多线程中实现流水线任务
下面程序代码通过使用Lock锁执行简单的流水线任务: import java.util.concurrent.locks.Condition; import java.util.concurrent. ...
- Java 中的Lock锁
Lock锁,可以得到和 synchronized一样的效果,即实现原子性.有序性和可见性. 相较于synchronized,Lock锁可手动获取锁和释放锁.可中断的获取锁.超时获取锁. Lock 是一 ...
最新文章
- Linux内核同步机制之(四):spin lock【转】
- idea mybatis generator插件_Mybatis使用自定义插件去掉POJO的Getter和Setter方法
- AJAX GET的请求
- spring jdbctemplate源码跟踪
- 全球及中国家用非金属材质水槽行业产销模式及投资规模预测报告2022-2027年
- 如何学习Python课程
- EXT中创建一个弹窗效果
- 【C++拾遗】 从内存布局看C++虚继承的实现原理
- python好玩的代码_一行 Python 能实现什么丧心病狂的功能?
- ASP.NET 多环境下配置文件web.config的灵活配置---转
- linux网络编程客户端,Linux网络编程入门
- 问题三十三:怎么用ray tracing画特殊长方体(box)
- BAT频繁与移动医疗挂钩 预示行业即将爆发?
- JavaScript基础
- linux dhcpv6 客户端,Linux(RedHat6.4)下配置radvd和dhcpv6
- C++综合练习——身份证
- url 里面 等号_【Python成长之路】从零学爬虫给微信公众号阅读量作个弊:刷阅读量...
- Python学习日记07
- 广东工程职业技术学院计算机二级,高职高考必看|全面了解广东工程职业技术学院...
- [文献阅读]—Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation
热门文章
- 怎么把 html做成雪花特效,CSS3 HTML5下雪特效 雪花飘飘
- C加密 java_c语言的des加密,怎么用java解密
- C语言 数组中删除指定字符
- 需要规范日志格式_Node开发的日志规范
- kafka集群 kubernetes_为什么Kubernetes如此受欢迎?
- 岗位理解_如何正确理解策划岗位
- beego mysql按时间排序_beego的数据库操作优化
- zk pivottable java_zookeeper节点类型和java客户端创建zk节点
- Linux内核无法放到Ubuntu中,无法通过Linux内核模块(Ubuntu)在内核内存中写入
- 解决微信0day上线CobaltStike的几个问题