转载自 学习java多线程,这必须搞懂的这几个概念,很重要。

同步和异步

同步,Synchronous,即调用方法开始,一旦调用就必须等待方法执行完返回才能继续下面的操作。

举个例子,你去银行ATM取钱,你必须等到ATM吐完钱你拿到钱取完卡你才能离开。

异步,Asynchronous,即不关心方法执行的过程,触发要调用的方法就继续执行下面的操作,不会像同步那样阻塞直要到方法完成才继续。

举个例子,你这次要取钱,数量较大,你直接电话或者APP预约银行说你要取多少万现金,这段时间银行会为你准备钱,而这与你都没什么关系,然后你只要按预定的时候去取就行了,对你于而言,你们是触发了一个异步动作而已。

并发和并行

并发,Concurrency,即一段时间内多个任务在执行,但不一定是同时在执行,它们可能是交替在运行,也有可能是串行运行的。

并行,Parallelism,这个就是多个任务在同时执行,可以理解为并发里面有一部分任务在并行执行。

单核CPU不会有并行操作,应为一个CPU一次只能执行一条指令,并行操作只存在于多核CPU中。

阻塞和非阻塞

阻塞,Blocking,如果一个线程占用了一个公共资源而没有释放对它的锁,另外别的一些线程想要继续执行就只能等它释放锁,这时候就造成阻塞了。

非阻塞,Non-Blocking,就是没有阻塞,线程可以自由运行,没有锁定公共资源,不相互阻塞运行。

学习java多线程,这必须搞懂的这几个概念相关推荐

  1. 学习Java日志框架之——搞懂日志门面(JCL+SLF4J)

    文章目录 系列文章目录 一.什么是日志门面 1.门面模式(外观模式) 2.日志门面 二.了解JCL 1.JCL组件结构 2.JCL案例 (1)JCL默认实现 (2)导入log4j测试原有程序 三.SL ...

  2. 学习Java日志框架之——搞懂JUL(java.util.logging)

    文章目录 系列文章目录 一.JUL简介 二.JUL组件介绍 三.代码实例 1.入门案例 2.日志级别 (1)默认日志级别源码分析 3.自定义日志级别 4.将日志输出到文件中 5.Logger的父子关系 ...

  3. Java 多线程:彻底搞懂线程池

    熟悉 Java 多线程编程的同学都知道,当我们线程创建过多时,容易引发内存溢出,因此我们就有必要使用线程池的技术了. 目录 1 线程池的优势 2 线程池的使用 3 线程池的工作原理 4 线程池的参数 ...

  4. Java程序员应该搞懂的六个问题

    Java程序员应该搞懂的六个问题 太平洋电脑网 作者:雷少 对于这个系列里的问题,每个学Java的人都应该搞懂.当然,如果只是学Java玩玩就无所谓了.如果你认为自己已经超越初学者了,却不很懂这些问题 ...

  5. java火箭应用_从火箭发场景来学习Java多线程并发闭锁对象

    原标题:从火箭发场景来学习Java多线程并发闭锁对象 从火箭发场景来学习Java多线程并发闭锁对象 倒计时器场景 在我们开发过程中,有时候会使用到倒计时计数器.最简单的是:int size = 5; ...

  6. java 闭锁_从火箭发场景来学习Java多线程并发闭锁对象

    从火箭发场景来学习Java多线程并发闭锁对象 倒计时器场景 在我们开发过程中,有时候会使用到倒计时计数器.最简单的是:int size = 5; 执行后,size-这种方式来实现.但是在多线程并发的情 ...

  7. 【深度学习计算机指令系统,彻底搞懂指令十大寻址方式】

    系列文章目录 1.<带你深挖计算机底层逻辑,打通你计算机基础知识的任督二脉> 2.<深度学习计算机底层原理,深度剖析存储器> 3.<基于内存全面理解高速缓冲存储器> ...

  8. 如何学习Java多线程

    最近一段时间,我对<Java并发编程实践>这本经典而又有些难懂的书籍,尝试用了一些简单有趣.通俗易懂的方式进行解读,现整理成GitBook(文末有链接),方便大家阅读. 为什么要解读这本书 ...

  9. 不要做一个「永远没彻底搞懂」诸如递归等概念的程序员

    Don't be the person who "never quite understood" something like recursion. https://teachyo ...

最新文章

  1. acf滞后数必须为正整数。_【知识点】“勾股定理”的必考点,必须掌握!
  2. 常用正则表达式大全——包括校验数字、字符、一些特殊的需求
  3. python字典速度能比字典高多少_python – 字典访问速度比较与整数键对字符串键...
  4. 使用php,使用 PHP
  5. php编译支持mysql,编译php支持curl和pdo_mysql
  6. window环境读linux文件,Windows本地环境和Linux腾讯云服务器之间传输文件的方法
  7. 壕无人性!618战报发布:天猫、京东累计下单金额近万亿
  8. js类似matlab_JavaScript与MATLAB的计算性能差异对比研究
  9. hadoop2.2.0 centos6.4 编译安装详解
  10. 使用JDK开发WebServrice案例
  11. linux的vmstat命令,vmstat命令参数详解
  12. 从“制造”之城,到“智造”标杆,长沙何以站上发展新高地?
  13. PayPal 更换汇率结算方式 降低手续费,PayPal汇率结算 改为 银行汇率结算
  14. 英汉互译在线翻译-英文翻译中文的翻译
  15. Kalman详尽原理介绍合集
  16. GD32篇 一、GD32程序设置读保护,防止程序被读取
  17. 618将至,各产品营销活动通用文案合集分享,有需要的进
  18. Analytic hierarchy process
  19. 移动通信 TMSI、IMSI、EMSI、MSIISDN码详解
  20. 2023年房企数字化预算该往哪些场景投?(附爱分析报告下载)

热门文章

  1. [Spring5]IOC容器_Bean管理注解方式_创建对象
  2. 2-SAT适定性(Satisfiability)问题知识点详解
  3. mysql 剔除不可见字符_不可见字符,Excel里最隐蔽的坑
  4. ffmpeg加环境变量
  5. P4288 [SHOI2014]信号增幅仪 最小圆覆盖
  6. 【杭电多校2020】Fibonacci Sum【斐波拉契通项】【推式子】
  7. 牛客网【每日一题】Shortest Path 4月3日题目精讲 DFS
  8. P5643-[PKUWC2018]随机游走【min-max容斥,dp】
  9. NOI.AC#2007-light【根号分治】
  10. Loj#6053-简单的函数【Min25筛】