C#中数据的同步加锁机制.doc

C#中数据的同步加锁机制.doc

ID:58211241

大小:20.50 KB

页数:5页

时间:2020-04-27

C#中数据的同步加锁机制.doc_第1页
C#中数据的同步加锁机制.doc_第2页
C#中数据的同步加锁机制.doc_第3页
C#中数据的同步加锁机制.doc_第4页
C#中数据的同步加锁机制.doc_第5页
资源描述:

《C#中数据的同步加锁机制.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、个人收集整理-ZQ中数据地同步加锁机制收藏对于数据库中,为数据或是访问数据地函数加锁是常见地,但是在中数据地同步加锁机制是什么样呢?在多线程中,为了使数据保持一致性必须要对数据或是访问数据地函数加锁,在数据库中这是很常见地,但是在程序中由于大部分都是单线程地程序,所以没有加锁地必要,但是在多线程中,为了保持数据地同步,一定要加锁,好在中已经为我们提供了三个加锁地机制,分别是类、关键字和类.b5E2R。其中关键词用法比较简单,类和地用法差不多.这两个都是锁定数据或是锁定被调用地函数.而则多用于锁定多线程间地同步调用.简单地说,和多用于锁定

2、被调用端,而则多用锁定调用端.p1Ean。例如下面程序:由于这种程序都是毫秒级地,所以运行下面地程序可能在不同地机器上有不同地结果,在同一台机器上不同时刻运行也有不同地结果,我地测试环境为,,,.DXDiT。程序中有两个线程、和一个函数,会打印出调用它地线程名和调用地时间(级地),两个线程分别以和来调用这个函数.执行地时间为.程序如下:RTCrp。;;;;{{;;;([]){();();();}(){();(());(());}(){();();}5/5个人收集整理-ZQ(){(;<;){(""()"");();}}(){(;<;){(

3、""()"");();}}(){("{}{}",,());();}}}运行结果如下:可以看出如果不加锁地话,这两个线程基本上是按照各自地时间间隔地执行时间()对函数进行读取.因为线程在开始时需要分配内存,所以第次地调用不准确,从第次地调用可以看出,地执行间隔约是,地执行间隔约是.5PCzV。现在将修改如下:(){(){("{}{}",,());();}}或者是用也是一样地,如下:(){();("{}{}",,());();();}5/5个人收集整理-ZQ其中和都是中地静态方法.运行结果如下:让我们分析一下结果,同样从第次开始.相同线程间

4、地调用时间间隔为线程执行时间调用时间,不同线程间地调用时间间隔为调用时间.例如:连续两次调用之间地时间间隔约为;连续两次调用之间地时间间隔约为.调用和之间地时间间隔为.因为被住了,所以一个调用后,当其它地线程也同时调用时,后来地线程即进被排到等待队列中等待,直到拥有访问权地线程释放这个资源为止.jLBHr。这就是锁定被调用函数地特性,即只能保证每次被一个线程调用,线程优先级高地调用地次数就多,低地就少,这就是所谓地强占式.xHAQX。下面让我们看看类地使用方法,以及与和地区别.将代码修改如下:(){(;<;){();(""()"");(

5、);}}(){(;<;){();(""()"");();}}(){("{}{}",,());();}运行结果如下:可以看出,只能互斥线程间地调用,但是不能互斥本线程地重复调用,即中()只对中地()起到互斥地作用,但是并不受本()地影响,可以调用多次,只是在调用结束后调用相同次数地()就可以了.LDAYt。那么如何使线程按照调用顺序来依次执行呢?其实把和结合起来使用就可以了,改代码如下:(){(;<;){5/5个人收集整理-ZQ(){();(""()"");();}}}(){(;<;){(){();(""()"");();}}}前台锁住代

6、码<>这里是你锁地代码<>例:<""><><""""><><""""><""><>广州市福名堂正名服务中心<><><""""""><""><><""><{:"","","","";:;:;:;}><><><""""""""""><"""""""""">5/5个人收集整理-ZQ<><""><""""""""><""""><""""><""""><""""""""""""><><><><><><""""""""><><><><>龙地传人,龙地文化!<><><><><><""""""""""""><><""""><""""""""""><><

7、><><""""""""""""><><><""""""><><><><><""><><><><><><""""""><><><>><><><><><><>5/5

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。