CLR_via_C#.3rd 翻译[25.6 CLR线程和windows线程]

本文探讨了CLR线程与Windows线程的关系,解释了当前两者之间的映射方式,并讨论了未来可能引入的逻辑线程概念及其潜在优势。此外,文章还提供了一些编码建议,帮助开发者更好地处理线程。

25.6 CLR Threads and Windows Threads . CLR线程和windows线程

 

今天,CLR使用的是Windows的线程处理能力,所以本章第V部分实际着眼于由Windows 向开发人员公开的线程处理能力。我将解释线程在Windows中是如何工作,以及CLR如何改变线程的行为(如果能的话)。然而,如果你想更多地学习线程,建议阅读我以前就这个主题出版的一些著作,比如我的《Windows via C/C++》一书(Microsoft Press,2007)。

 

尽管今天的一个CLR线程是直接映射到一个Windows线程上,但微软CLR团队保留了将来把它从Windows线程分离的权利。有一天,CLR 可能引入它自己的逻辑线程概念,使一个CLR 逻辑线程并非一定映射到一个物理Windows 线程。据说,逻辑线程将使用比物理线程少得多的资源,所以能在极少量的物理线程上运行大量逻辑线程。例如,CLR可以判断你的一个线程处于等待状态,重新分配那个线程去做一个不同的任务。这个方案的好处在于:编码更简单、使用的资源更少以及潜在的性能提升。遗憾的是,要想真正实现这个方案,CLR团队还有大量工作要做,所以近期不太可能看到CLR推出这个功能。

 

对你来说,这一切意味着在操纵线程时,代码应尽可能少地做出一些假设。例如,应避免P/Invoke成本地Windows函数,因为这些函数对CLR线程一无所知。通过避免使用本地Windows 函数,坚持使用FCL(Framework类库)中的类型,将来在性能得到提升之后,你的代码马上就能享受到这种提升。

转载于:https://www.cnblogs.com/TivonStone/archive/2010/09/07/1820919.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值