并发和并行的问题
Finn 2018-08-05 08:42:00 大佬们你们出手的机会来了。
1.我们通常说的并发是指在单核cpu上利用时间分片的形式"同时"运行多个不同的任务,但是我们现在的cpu都是多核的,假如说有一个4核cpu,我们在主函数中创建了2个线程同时执行一个方法,那么这2个线程是否会在不同核的cpu上同时运行?如果是,这还叫并发吗,还是应该叫并行,那么Thread.currentThread()这个方法总不会输出两个线程名吧。
2.线程优先级问题。在博客上看到有人总结说线程的优先级仍然无法保障线程的执行次序。只不过,优先级高的线程获取CPU资源的概率较大,优先级低的并非没机会执行。但是又有人反驳,这是因为多核cpu的关系,不同线程跑在不同的cpu,所以才得出这个结论,如果跑在单核上高优先级的线程就会先得到调度。好像也有道理。