我经常读到并行性和并发性是不同的东西。答题者/评论者经常会写到他们是两个完全不同的事物。但是我认为它们是相关的,但我想对此进行一些说明。
例如,如果我在多核CPU上并设法将计算分成x个较小的计算(例如使用fork / join),每个计算均在其自己的线程中运行,则我将拥有一个同时进行并行计算的程序(因为大概在任何时候,几个线程都将在多个内核上运行)并且是并发的吗?
虽然如果我只是简单地使用Java,并处理事件调度线程上的UI事件和重绘,再运行我创建的唯一线程,那么我将拥有一个并发程序(EDT + GC线程+我的主线程)等),但不是并行的。
我想知道我是否正确,并行性(在“单核但多核”系统上)是否总是暗示并发?
另外,是否在多核CPU上运行多线程程序,但是不同线程在进行完全不同的计算的情况下是否考虑使用“并行性”?