并发编程和并行编程有什么区别?
并行编程和并行编程有什么区别? 我问谷歌,但没有找到任何可以帮助我理解这种差异的东西。 你能给我两个例子吗? 现在,我找到了以下解释: http : //www.linux-mag.com/id/7411- 但是“并发是程序的属性”与“并行执行是机器的属性”对我来说还不够-我还是不能说什么。 #1楼 我在一些博客中找到了此内容。 认为它是有用和相关的。 并发和并行性不是一回事。 如果未预先确定两个任务的执行顺序,则两个任务T1和T2是并发的, T1可以在T2之前执行并完成,T2可以在相同时间(并行)同时执行T1,T1和T2之前执行并完成,T1和T2可以交替执行,...如果有两个并发线程如果操作系统将其调度为在一个单核非SMT非CMP处理器上运行,则可能会并发但不会并行。 并行可能在多核,多处理器或分布式系统上进行。 并发通常被称为程序的属性,并且是比并行性更笼统的概念。 资料来源: https : //blogs.oracle.com/yuanlin/entry/concurrency_vs_parallelism_concurrent_programming #2楼 我相信并发编程是指多线程编程,它是让您的程序运行从硬件详细信息中抽象出来的多个线程。 并行编程是指专门设计程序算法以利用可用的并行执行。 例如,您可以并行执行某些算法的两个分支