四核CPU运行三个线程的假想 三线程并行,其中两个线程各自独占一核,剩下一个线程随机使用剩余两核的部分资源。如果访问同一个内存地址,就互相争夺;如果各自访问不同地址就互不影响。如果线程数量超过四,开始出现一核运行多个线程的并发过程。这是我的假想,希望大神指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你这个想法过于朴素了。什么问题也说明不了。首先多线程程序设计,不能说根据cpu有几个核结果就变化,这是完全不靠谱的。应该设计出来的程序,无论几个核结果都正确才行。有关知识应该学习下操作系统里讲的p-v操作,同步互斥的原理。 我想说明的是 最多支持n线程的CPU跑一个线程用1秒,跑n个线程也是用1秒,线程数小于n,都是用时1秒。如果跑2n个线程,这些线程就没法并行了,用时会变成2秒。并行和并发,除了耗时不同,别的没什么区别,编程时一般不会关心并行和并发的问题。老师讲的时候也是直接就说成了并发。 但实际上,是可以并行的。如果有对运行时间要求很高的算法,可以利用多核CPU并行多线程这个能力。 我吐 - 对提问者的不负责任,误导他人 容器参数类型问题 初学递归算法。 java swing中JTable怎样添加按钮到单元格中? 怎么实现网页中的繁体化简体啊?/???? 动态加载方法 java强制垃圾回收遇到的问题 如何在java程序中取得一个给定目录下的所有文件名? 弱弱的问-->java在linux的Xwindow下能开发出可视化界面么 ==============ClassA b=new ClassB()谁能解释!================= ==和equals区别 线程池
首先多线程程序设计,不能说根据cpu有几个核结果就变化,这是完全不靠谱的。应该设计出来的程序,无论几个核结果都正确才行。
有关知识应该学习下操作系统里讲的p-v操作,同步互斥的原理。