谈谈并行和并发(多线程)

1.CPU的发展趋势:

核心数目依旧会越来越多,根据摩尔定律,由于单个核心性能提升有着严重的瓶颈问题,普通的PC桌面在2018年可能回到24核心。

2.多线程和并行计算的区别:

所有的并发处理都有排队等候,唤醒和执行这三个步骤,所以并发是宏观的观念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在宏观上多个几乎同时到达的请求同时在被处理。如果是同一时刻到达的请求也会根据优先级的不同,先后进入队列排队等候执行。

并发与并行是两个既相似但是却不相同的概念:

并发性:又称共行性,是指处理多个同时性活动的能力,。

并行:指同时发生两个并发事件,具有并发的含义。并发不一定并行,也可以说并发事件之间不一定要同一时刻发生。

并发的实质是一个物理CPU(也可以是多个物理CPU)在若干个程序之间多路复用,并发性是对有限物理资源强制行使 多用户共享以提高效率。

并行指两个或两个以上事件或活动在同一时刻发生,在多道程序环境下,并行使多个程序同一时刻可在不同CPU上同时执行。

(****在这里吐槽一下博客园的博客编辑器真他奶奶的烂,极其烂****)

并发是在同一个cpu上同时(不是真正的同时,而是看来是同时,因为CPU要在多个程序之间切换)运行多个程序。

并行是每一个CPU运行一个程序。

打个比方:并发就像一个人(CPU)喂两个小孩(程序)吃饭,表面上是两个小孩在吃饭,实际是一个人在喂。

并行就是两个人喂两个小孩子吃饭。

时间: 2024-10-13 08:20:34

谈谈并行和并发(多线程)的相关文章

并行和并发有什么区别?

并行和并发有什么区别? 2013-10-06 22:17 491人阅读 评论(0) 收藏 举报  分类: 操作系统(7)  版权声明:本文为博主原创文章,未经博主允许不得转载. 并行: 同时, at the same time 并发: 先做一下A, 再做一下B,  又去做一下A, 又去做一下B.  交替执行, 每个时间点只做一件事.

Java虚拟机6:内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别

http://www.cnblogs.com/xrq730/p/4839245.html 前言 之前的文章尤其是讲解GC的时候提到了很多的概念,比如内存溢出和内存泄露.并行与并发.Client模式和Server模式.Minor GC和Full GC,本文详细讲解下这些概念的区别. 内存溢出和内存泄露的区别 1.内存溢出 内存溢出指的是程序在申请内存的时候,没有足够大的空间可以分配了. 2.内存泄露 内存泄露指的是程序在申请内存之后,没有办法释放掉已经申请到内存,它始终占用着内存,即被分配的对象可

Java基础】并发 - 多线程

Java基础]并发 - 多线程 分类: Java2014-05-03 23:56 275人阅读 评论(0) 收藏 举报 Java 目录(?)[+] 介绍 Java多线程 多线程任务执行 大多数并发应用程序时围绕执行任务(task)进行管理的:所谓任务就是抽象的,离散的工作单元. 围绕执行任务来管理应用程序时,第一步是要指明一个清晰的任务边界.大多数应用服务器程序都选择了下面这个自然的任务辩解:单独的客户请求: 任务时逻辑上的单元: 任务 Runnable 表示一个任务单元(java.lang)

并行和并发收集统计信息

并行和并发收集统计信息 概述 随着应用数据的增多和表量的增加,为了增加统计信息收集的效率,Oracle推出了并行和并发收集统计信息的方法. 本文将针对并行和并发收集统计信息的相关知识内容以及部分案例进行介绍,并重点介绍并发统计信息收集. 并行收集统计信息(PARALLEL ) 当某个表的Size特别大时,可以通过并行的Slave进程共同工作来加快统计信息收集的效率. 默认情况下,数据库能够根据在表或者索引级别设置的并行度(默认:1)进行并行统计信息收集. 但我们也可以通过显示地设置degree参

Java虚拟机6:垃圾收集(GC)-2(并行和并发的区别)

1.并发编程下 这两个名词都是并发编程中的概念,在并发编程的模型下的定义: 并发:是在同一个cpu上同时(不是真正的同时,而是看来是同时,因为cpu要在多个程序间切换)运行多个程序. 并行:是多个或同时一个cpu上,每个cpu运行一个程序. 打个比方,并发,就像一个人(cpu)喂2个孩子(程序),轮换着每人喂一口,表面上两个孩子都在吃饭.并行,就是2个人喂2个孩子,两个孩子也同时在吃饭. 并行和并发并不是两个互斥的概念. 2.垃圾收集器下 在谈论垃圾收集器的上下文语境中,可以这么理解这两个名词:

分布式=高并发=多线程

当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程? 当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼? 确实,在一开始接触的时候,不少人都会将三者混淆,误以为所谓的分布式高并发的系统就是能同时供海量用户访问,而采用多线程手段不就是可以提供系统的并发能力吗?实际上,他们三个总是相伴而生,但侧重点又有不同. 什么是分布式? 分布式更多的一个概念,是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段.该领域需要解决的问题极多,在

进程的并行和并发

目录 一.进程的并行和并发 二.并行和并发的区别 一.进程的并行和并发 并行: 并行是指两者同时执行,比如赛跑,两个人都在不停的往前跑:(资源够用,比如三个线程,四核的CPU ) 并发: 并发是指资源有限的情况下,两者交替轮流使用资源,比如一段路(单核CPU资源)同时只能过一个人,A走一段后,让给B,B用完继续给A ,交替使用,目的是提高效率. 二.并行和并发的区别 并行是从微观上,也就是在一个精确的时间片刻,有不同的程序在执行,这就要求必须有多个处理器. 并发是从宏观上,在一个时间段上可以看出

109 进程的并行和并发

目录 一.进程的并行和并发 二.并行和并发的区别 一.进程的并行和并发 并行: 并行是指两者同时执行,比如赛跑,两个人都在不停的往前跑:(资源够用,比如三个线程,四核的CPU ) 并发: 并发是指资源有限的情况下,两者交替轮流使用资源,比如一段路(单核CPU资源)同时只能过一个人,A走一段后,让给B,B用完继续给A ,交替使用,目的是提高效率. 二.并行和并发的区别 并行是从微观上,也就是在一个精确的时间片刻,有不同的程序在执行,这就要求必须有多个处理器. 并发是从宏观上,在一个时间段上可以看出

java并发多线程(摘自网络)

1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和程序的单一进程.线程可以被称为轻量级进程.线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源. 2. 多线程编程的好处是什么? 在多线程程序中,多个线程被并发的执行以提高程序的效率,CPU不会因为某个线程需要等待资源而进入空闲状态.多个线程共享堆内存(heap memory),因此创建