我想请问下,在多cpu的线程同步与单cpu 下处理方式有哪些不同,怎么处理!
看到园子里有朋友说,多cpu下单纯的用lock(){}是有问题的!
请知道多cpu下线程同步及线程锁的朋友给点帮助!
这个问题在单cpu多核的情况下会不会同样存在呢!?
CPU的协调是由.Net框架完成的,目前来说你无法在这样的高层语言中进行什么控制,也不会产生什么问题,我的多线程程序在双核、单核超线程上也没出过什么事的。
单核多CPU、单核超线程、单CPU多核,再操作系统看来应该都是一样的,操作系统都会当作多CPU执行,只要看任务管理器里CPU图标分为多少个就知道了,所以通常不会有什么差别,有也是英特尔和微软要解决的事,跟咱们没多大关系。
对于优化方面,理论上说,函数式程序能够更好的优化多CPU情况下的表现,但F#虽是函数式编程,却也基于.Net框架之上,所以尚不清楚F#能否提供更好的多CPU表现。
如对函数式编程有兴趣可以参看:http://www.cnblogs.com/erain/archive/2008/12/14/1354810.html
应该不涉及到这个问题吧!
个人感觉啊,多核与否,除非高级语言或框架有相关说明,否则对开发人员应该是透明的才对。