转载请注明原创出处,谢谢!

HappyFeet的博客

有些知识很久不看很容易就会忘掉,尤其是一些概念性知识。好记性不如烂笔头,不如记下来便于以后翻看。


1、并发和并行

  • 并发:处理多个任务的能力,不一定要同时
  • 并行:同时处理多个任务的能力。

二者区别在于是否同时。参考:并发与并行的区别?

2、进程和线程

放几个比较有趣的答案,参考:线程和进程的区别是什么?

  • 进程和线程都是一个时间段的描述,是 CPU 工作时间段的描述,只不过颗粒大小不同。

    进程就是时间总和 = CPU 加载程序上下文的时间 + CPU 执行时间 + CPU 保存程序上下文的时间线程也是时间总和 = CPU 加载线程上下文的时间 + CPU 执行时间 + CPU 保存线程上下文的时间
    
  • 进程是爹妈,管着众多的线程儿子

3、线程安全性

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

4、竞态条件和临界区

当多个线程竞争同一资源时,如果对资源的访问顺序敏感,就称存在竞态条件。导致竞态条件发生的代码区称作临界区。

5、线程的生命周期

  • NEW:新建
  • RUNNABLE:运行
  • BLOCKED:阻塞
  • WAITING:无限期等待
  • TIMED_WAITING:限期等待
  • TERMINATED:结束

6、Java 线程调度

线程调度是指系统为线程分配处理器使用权的过程,主要调度方式有两种,分别是协同式线程调度抢占式线程调度

7、僵尸进程和孤儿进程

  • 一个进程使用 fork 创建子进程,如果子进程退出,而父进程并没有调用 waitwaitpid 获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程(或称僵死进程)。
  • 一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。

参考资料:

(1)《深入理解 Java 虚拟机》周志明 著.

(2)《Java 并发编程实战》

(3)并发与并行的区别?

(4)线程和进程的区别是什么?

Java 多线程学习(1)一些容易被遗忘的基础概念相关推荐

  1. Java多线程学习处理高并发问题

    在程序的应用程序中,用户或请求的数量达到一定数量,并且无法避免并发请求.由于对接口的每次调用都必须在返回时终止,因此,如果接口的业务相对复杂,则可能会有多个用户.调用接口时,该用户将冻结. 以下内容将 ...

  2. java多线程学习-java.util.concurrent详解

    http://janeky.iteye.com/category/124727 java多线程学习-java.util.concurrent详解(一) Latch/Barrier 博客分类: java ...

  3. Java多线程学习(二)synchronized关键字(1)

    转载请备注地址: https://blog.csdn.net/qq_34337272/article/details/79655194 Java多线程学习(二)将分为两篇文章介绍synchronize ...

  4. java多线程学习笔记。

    java多线程学习笔记 线程的优缺点: 多线程的好处: 充分利用多处理核心,提高资源的利用率和吞吐量. 提高接口的响应效率,异步系统工作. 线程的风险: 安全危险(竞争条件):什么坏事都没有发生.在没 ...

  5. 【转】Java 多线程学习

    原网址:https://www.cnblogs.com/yjd_hycf_space/p/7526608.html Java多线程学习(总结很详细!!!) 此文只能说是java多线程的一个入门,其实J ...

  6. 转:Java多线程学习(总结很详细!!!)

    Java多线程学习(总结很详细!!!) 此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢? 本文主要讲java中多线程 ...

  7. Java多线程学习——01

    Java多线程学习--01 1.核心概念 程序:是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念 进程Process:是执行程序的一次执行过程,它是一个动态的概念,是系统资源分配的单 ...

  8. java线程学习,GitHub - zksir/thread: Java多线程学习

    Java多线程学习 threadcoreknowledge包----线程核心知识基础 createthreads包 创建线程 1.实现多线程的方法是1种还是2种还是4种? Oracle官方:2种,一种 ...

  9. Java多线程学习之路(四)---死锁(DeadLock)

    Java多线程学习之路(四)-死锁(DeadLock) 1.定义 死锁就是多个线程在竞争共享资源的时候,相互阻塞,不能脱身的状态(个人理解).其实死锁一定程度上可以看成一个死循环. 举个现实生活中的例 ...

  10. Java多线程学习 (超详细总结)

    Java多线程学习 一.概要 二. JAVA 线程实现/创建方式 2.1 继承Thread 类 2.2 实现 Runnable 接口 2.3 Thread和Runnable的区别 2.4 总结 三.线 ...

最新文章

  1. centos6.6 Kickstart无人值守安装(一):原理篇
  2. Silverlight开发常见的一个小问题:2103错误
  3. CodeForces - 979D Kuro and GCD and XOR and SUM(字典树+暴力+模拟)
  4. Oracle约数,Oracle约束简介
  5. vue 集成 Loading 加载效果
  6. 关于SQLServer2005的学习笔记——SQL查询解析步骤
  7. CleanMyMac下载正版清理苹果mac系统电脑蓝奏云
  8. 体检结果(2018年10月,胃肠镜)
  9. C语言一个数组中随机抽取5个数字
  10. Android 3D画廊
  11. Jackson转换java对象与json对象
  12. 微信小程序设置背景图片
  13. Ping计算机名和Ping网站域名都是由DNS解析吗?
  14. Java实现doc转docx
  15. Matlab——深度学习工具箱
  16. 《软件方法(上)业务建模和需求》第2版 勘误(2022年10月24日更新)
  17. STM32的IIC(模拟)读写AT24c02
  18. 汽车CAN总线系统原理与应用
  19. 5.1-5.31推荐文章汇总
  20. .htaccess中的apache rewrite规则写法详解

热门文章

  1. 计算机软件使用前验证校准,ISO对计量器具管理要求
  2. 港中文、佐治亚理工招收AI博士生
  3. Oracle GL - 使用标准程序获取/创建CCID
  4. Proxmox VE 7.2 使用qemu-img转换磁盘格式
  5. Springboot:整合DubboProvider的配置以及Comsumer的配置
  6. soul被下架,社交圈的一股清流也变了味?
  7. 高考作弊,5G背锅,还是屏蔽器背锅
  8. 主机插耳机没声音问题
  9. C语⾔核⼼基础知识之printf
  10. E2. Divisible Numbers (hard version)