Saya sering membaca bahwa paralelisme dan konkurensi adalah hal yang berbeda. Sangat sering para penjawab / komentator menulis bahwa keduanya adalah dua hal yang sama sekali berbeda. Namun dalam pandangan saya mereka terkait tetapi saya ingin klarifikasi tentang itu.
Sebagai contoh jika saya menggunakan CPU multi-core dan berhasil membagi perhitungan menjadi komputasi x yang lebih kecil (katakanlah menggunakan fork / join) masing-masing berjalan di utasnya sendiri, saya akan memiliki program yang sama-sama melakukan komputasi paralel (karena seharusnya pada suatu titik waktu beberapa thread akan berjalan pada beberapa core) dan menjadi bersamaan?
Sementara jika saya hanya menggunakan, katakanlah, Java dan berurusan dengan peristiwa UI dan repaints pada Event Dispatch Thread ditambah menjalankan satu-satunya utas yang saya buat sendiri, saya akan memiliki program yang bersamaan (EDT + GC thread + utas utama saya dll) tetapi tidak paralel.
Saya ingin tahu apakah saya mendapatkan ini dengan benar dan apakah paralelisme (pada sistem "tunggal tetapi multi-core") selalu menyiratkan konkurensi atau tidak?
Juga, apakah program multi-threaded berjalan pada CPU multi-core tetapi di mana thread yang berbeda melakukan perhitungan yang sama sekali berbeda dianggap menggunakan "paralelisme"?