工于其善,必先利器

1、并发和并行的区别

并行:同一时间点执行多个任务(CPU多核或多个CPU同时执行多个任务)

并发:同一时间段内行多个任务(单核同时执行多个任务)

2、同步和异步的区别

同步:执行某个操作,按顺序执行下去,直到结束。

异步:执行某个操作后,立即离开,等到有返回结果时,回来继续执行。

额,感觉这个描述不怎么正式。但是我认为异步执行就是为了充分利用执行某项操作需要耗费大量时间,而异步就是为了利用这个时间,提高程序本身的执行效率。

3、进程和线程区别

进程:并发执行计算机程序的分配和管理计算机资源基本单位。

线程:线程是进程的执行单元,是进程的细粒度划分。

4、为什么要并发编程

提高对CPU的时间片利用效率,从而提高程序同一时间段处理的业务能力。

5、什么是线程安全

对于开发者来讲,我认为线程安全是用来形容CLASS的,那什么是一个线程安全的类呢?

当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程交替执行,并且在主调代码不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称该类是线程安全的。

并发编程>>概念准备(一)的更多相关文章

  1. java并发编程概念

    并发:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其 ...

  2. 【java并发编程实战】-----线程基本概念

    学习Java并发已经有一个多月了,感觉有些东西学习一会儿了就会忘记,做了一些笔记但是不系统,对于Java并发这么大的"系统",需要自己好好总结.整理才能征服它.希望同仁们一起来学习 ...

  3. java并发编程_建立概念

    在学习多线程编程时,相信大家会遇到好多概念类的东西,对于这些概念的不准确理解会导致后面越学越糊涂,现将学习过程中遇到的概念整理到这篇博客上,一来记录学习点滴,二来也加深理解,如果有理解不准确的地方,希 ...

  4. 1.1 Java并发编程的一些概念

    并发编程的一些概念 同步和异步 同步: 同步方法必须等到方法调用返回后,才能继续后继的行为.也就是说,同步方法执行时,如果没有返回,则后面的方法是执行不到的.同步方法调用,调用过程中可能出现阻塞和等待 ...

  5. Java并发编程(一)-- 多线程的基本概念

    多线程发展进程 在过去单CPU时代,单任务在一个时间点只能执行单一程序:发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程--虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个 ...

  6. 【Java并发编程】6、volatile关键字解析&内存模型&并发编程中三概念

    volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以 ...

  7. Java并发编程:什么是线程安全,以及并发必须知道的几个概念

    废话 众所周知,在Java的知识体系中,并发编程是非常重要的一环,也是面试的必问题,一个好的Java程序员是必须对并发编程这块有所了解的.为了追求成为一个好的Java程序员,我决定从今天开始死磕Jav ...

  8. Java并发编程 - 基本概念

    在开始我们的并发编程前,我们必须预热一下,一些基本概念必须了解. 1. 同步(Synchronous) / 异步(Asynchronous) 同步和异步都指一次方法调用. 同步:方法开始后,调用者必须 ...

  9. Python并发编程系列之常用概念剖析:并行 串行 并发 同步 异步 阻塞 非阻塞 进程 线程 协程

    1 引言 并发.并行.串行.同步.异步.阻塞.非阻塞.进程.线程.协程是并发编程中的常见概念,相似却也有却不尽相同,令人头痛,这一篇博文中我们来区分一下这些概念. 2 并发与并行 在解释并发与并行之前 ...

随机推荐

  1. Golang之函数练习

    小例题: package main import "fmt" /* 函数练习, 可变参数使用 写一个函数add 支持1个或多个int相加,并返回相加结果 写一个函数concat,支 ...

  2. Java程序设计19——类的加载和反射-Part-A

    1 本文概要 本章介绍Java类的加载.连接和初始化的深入知识,并重点介绍Java反射相关的内容.本章知识偏底层点,这些运行原理有助于我们更好的把我java程序的运行.而且Java类加载器除了根加载器 ...

  3. JavaScript 语法总结3

    1. 数组初始化可以跳着来  var s = [1,2,,,,6]; // 中间省略的元素为undefined 2. 函数定义表达式:  var f = function(args){ return ...

  4. 信息增益(Information Gain)(转)

    当我们需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设.在这种情况下,概率分布最均匀,预测的风险最小.因为这时概率分布的信息熵最大,所以称之为 ...

  5. 【转】简说GNU, GCC and MinGW (Lu Hongling)

    原地址:https://my.oschina.net/u/588967/blog/73478 GNU, GCC, MinGW是开源社区常常要遇到的概念. 网上一般的解释比较繁琐, 让人如坠云雾. 本文 ...

  6. 如何提取kinect中深度图的点云数据

    https://bbs.csdn.net/topics/391080654 在Matlab中调用Kinect教程:https://jingyan.baidu.com/article/af9f5a2d1 ...

  7. 23 DesignPatterns学习笔记:C++语言实现 --- 1.3 Singletion

    23 DesignPatterns学习笔记:C++语言实现 --- 1.3 Singletion 2016-07-21 (www.cnblogs.com/icmzn) 模式理解  

  8. [label][Google-Developers] Your First Multi Screen Site

    内容是任何网站最重要的部分. 所以,让我们为内容而设计,而不要让设计支配内容. 1. 首先确定我们需要的内容: 2. 基于这个内容,为无论宽.窄的 viewport 创建一个页面结构: 3. 然后在简 ...

  9. 咏南BS开发框架

    咏南BS开发框架 开发工具为:DELPHI 2006及以上版本.欢迎索取演示. 通用的三级权限管理. 登录验证 输入帐号和密码验证登录系统. 功能菜单 在这里设置好菜单,系统运行的时候会根据菜单设置动 ...

  10. linux free命令下 cached占用很大

    # 背景 使用free -h命令,展示如下: # 解决方法 先执行sync命令,同步数据 然后执行 echo 1 > /proc/sys/vm/drop_caches echo 2 > / ...