时间:2015-01-21 来源:

WaitHandle——使用Mutex 【综合】

Mutex创建Singleton应用程序

Mutex的构造函数接受一个bool类型的参数web外包,其默认为false;

namespace Mutex有参数的构造函数 { class Program { public System.Threading.Mutex mtx = new System.Threading.Mutex(true); //抢占:当前互斥体由主线程所有 private string called = ""; static void Main(string[] args) { Thread.CurrentThread.Name = "main "; Program p = new Program(); Thread worker = new Thread(p.ThreadEntry); worker.Name = "worker"; worker.Start(); Thread.Sleep(100); //让worker线程先执行:目的是为了让worker线程先执行; p.ThreadEntry(); #region 防止主线程一直占有资源 //Thread.Sleep(100); //p.MainJob(); #endregion } void ThreadEntry() { this.mtx.WaitOne();//worker线程在进入此方法后,html前端制作DateTime .Now.Millisecond); Console.WriteLine(called); this.mtx.ReleaseMutex(); } #region 防止主线程一直占有资源 //void MainJob() // { // //在此线程中网页html切图排版,至调用了ReleaseMutex方法,网页html切图排版; // //尽管对主线程使用了sleep方法,承接网站前端但是由于主线程持有互斥体,html切图报价 name, DateTime.Now.Millisecond); // Console.WriteLine(called); // this.mtx.ReleaseMutex(); // } #endregion } }

namespace Mutex创建singleton应用程序 { class Program { static void Main(string[] args) { string asm = Assembly.GetExecutingAssembly().GetName().Name; //通过反射取值,web外包获取到程序集的名称 Mutex mtx = new Mutex(false ,asm); //提示该实例已经在运行了 return ; //直接return } //主线程第一次进入 MainEntry(args); mtx.ReleaseMutex();//释放互斥体 } static void MainEntry(string[] args) { Console.WriteLine("running~~~~~~~~~~~"); Console.ReadLine(); } } }

   使用System.object对象作为线程同步的工具div+css+js切图,建立了一个基本的锁机制,网页重构报价确保资源只能同时被一个线程所访问.

     使用命名互斥体的一个例子是创建singleton应用程序承接网站前端,即只能打开一个实例的应用程序.

   .net中提供了更强大的system.threading.waithandle及其子类型,承接网站前端可以实现类似的效果.

Mutex带有参数的构造函数

   但是这个对象不作任何其他用途psd切图html,知识用于锁机制.

示例:

//System.Threading.Mutex 用于锁机制,psd切图html同一时刻只能有一个线程拥有它web外包,只有等到该线程释放,div切图排版其他线程才能持有它. //因此网页切图制作,使用mutex可以完成和lock语句相同的功能. //对于mutex来说,网页切图制作waitone方法为获取互斥体 //(等待其他线程发出释放互斥体信号div+css+js切图,如果没有任何其他线程占有互斥体,手机网页外包则调用waitone的线程获取到互斥体) //releaseMutex方法则用于释放互斥体 namespace 使用Mutex { class Program { private string called = ""; private System.Threading.Mutex mtx = new System.Threading.Mutex();//使用互斥体 static void Main(string[] args) { Program p = new Program(); Thread.CurrentThread.Name = "main "; Thread worker = new Thread(p.ThreadEntry); worker.Name = "worker "; worker.Start(); p.ThreadEntry(); } void ThreadEntry() { this.mtx.WaitOne();//等待该实例收到信号为止承接网站前端,name ,DateTime .Now .Millisecond); Console.WriteLine(called); this.mtx.ReleaseMutex(); //释放互斥体:类是exit } } }

     首先来看Mutex是如何取代object的:

   如果有一个类型可以专注于为线程同步的锁机制和信号量机制提供服务,psd切图html那么上面的代码就可以简化.

 

替代object加锁方式

    Mutex不仅提供跨线程的服务web外包,还提供跨进程的服务.当在构造函数中为Mutex指定名称时,web外包则会创建一个命名了的Mutex.

     其他线程创建mutex时网页切图制作,如果指定的名称相同,div页面则返回同一个互斥体div+css+js切图,不论该线程位于哪个进程或者应用程序域中.

点击次数:4284
作者:
web前端行业资讯
Web new NewsList
微软发布WindowsServerBuild17074更新 ,,2018年01月18日凭借一个AI小功能,这款Google应用冲上苹果AppStore榜首 ,,2018年01月18日百度数据可视化实验室正式成立,发布深度学习可视化平台VisualDL ,,2018年01月18日OpenAI开源最新工具包,模型增大10倍只需额外增加20%计算时间 ,,2018年01月18日百度手机输入法8.0正式发布:支持多人语音速记 ,,2018年01月18日CSDN宣布收购TinyMind团队并升级为AI社区 ,,2018年01月18日甲骨文发布补丁修复英特尔芯片漏洞造成的问题 ,,2018年01月18日权威!官方发布CPU熔断和幽灵漏洞防范指引:附补丁下载 ,,2018年01月18日Oracle宣布新的JavaChampions ,,2018年01月18日Fedora28壁纸征集活动现已开幕:将持续至2月13日 ,,2018年01月18日苹果WebKit团队发布Speedometer2.0网页响应测试工具 ,,2018年01月18日百度输入法8.0后天发布:全感官AI输入 ,,2018年01月18日腾讯和乐高合作:共同研发智能玩具、游戏 ,,2018年01月18日HomePod上市日益临近智能音箱市场吸引力越来越大 ,,2018年01月18日英特尔公布修补漏洞后PC性能数据:8代CPU影响最小 ,,2018年01月18日云存储公司Dropbox秘密提交IPO申请估值超百亿美元 ,,2018年01月18日iPod之父:防手机上瘾无技术难度苹果谷歌应承担责任 ,,2018年01月18日芯片不安全英特尔云客户考虑转用AMD等对手处理器 ,,2018年01月18日2018年Java展望 ,,2018年01月18日区块链有多火?快播流量矿石遭20多万人疯抢 ,,2018年01月18日Intel搞定神经拟态芯片:模拟人类大脑、自主学习 ,,2018年01月18日阿里巴巴发布IoTConnect开放连接协议,盼推动语音互动入口普及 ,,2018年01月18日区块链火了,全球大佬们怎么看? ,,2018年01月18日Facebook正测试新功能主推本地新闻资讯 ,,2018年01月18日在GooglePlay中发现使用Kotlin开发的安卓恶意软件 ,,2018年01月18日VisualStudio201715.6预览版本2,增加新功能 ,,2018年01月18日百度陆奇:AI是5G最好的加速器 ,,2018年01月18日PinterestCEO:不同于谷歌和Facebook,我们走了第三条路 ,,2018年01月18日腾讯加码区块链项目已悄然注册“以太锁”商标 ,,2018年01月18日3D打印脑组织?科学家正在向这一目标正在前进 ,,2018年01月18日LinuxC网络编程之初探 【移动开发】2015年09月02日HDU5221(树链剖分+线段树) 【综合】2015年05月05日somecharacterscannotbemappedusingiso-8859-1characterencoding 【综合】2015年03月11日DataTable多列合并问题轻松搞定2014年01月29日SublimeText3使用总结 【架构设计】2015年07月29日Python学习笔记(三) 【编程语言】2014年11月12日运用Dreamweaver插件制作网页漂浮广告2014年01月28日2假动作,数据缓冲,CCEaseExponential,CCEaseElastic,CCEaseBounce,CCCallFunc,funcNCallBack,funcNDCallBack,funcO【移动开发】2014年11月04日复习数据结构:排序算法(八)——基排序 【Web前端】2015年02月27日解决ListView中Item的子控件与Item点击事件冲突 【移动开发】2014年12月16日Mac“百毒不侵”神话破灭 ,,2016年07月24日网页制作中常用的5个CSS属性2014年01月28日Ubuntu将在CES大会展示独特概念设计 ,,2016年06月23日Linux网络编程——IP数据报格式详解 【移动开发】2015年04月09日flash加载各种外部文件2014年01月29日ASP.NETWebService中使用ASP.NET_SessionId的问题说明2014年01月29日用好LLDB调试,其乐无穷 【移动开发】2015年04月29日ADS-B显示终端6.8 【编程语言】2015年07月14日让普通QQ号也能克隆QQ好友2014年01月29日php__set__get__isset__unset用法防被忽悠分析 【架构设计】2014年12月04日Weblogicadminserver与managerserver内存分配缺陷优化2015年02月25日hdoj2824TheEulerfunction【编程语言】2015年08月27日验证验生成的原始方法 【编程语言】2015年04月13日全局光照技术进化史1-光线追踪篇2016年11月12日HTML5Access-Control-Allow-Origin解决跨域问题 【移动开发】2015年02月09日android命令行启动“未知”APK【数据库】2014年11月26日【生活感想】今天的两个奇妙的想法,连屏手机和联网图书馆 【综合】2015年03月02日asp实现dig功能的js代码2014年01月29日javascript可以拖动的DIV(二)2014年01月29日用PHP和MySQL保存和输出图片2014年01月29日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)