Java的自定义线程池 借鉴:https://www.cnblogs.com/nele/p/6502750.html 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系…
分类:并发编程
进程和线程的区别(超详细)
文章目录 进程和线程 进程 线程 进程与线程的区别总结 从 JVM 角度说进程和线程之间的关系(重要) 图解进程和线程的关系 程序计数器为什么是私有的? 虚拟机栈和本地方法栈为什么是私有的? 一句话简单了解堆和方法区 多…
HashMap进行put操作会引起死循环?
HashMap进行put操作会引起死循环? 最近在磕《java并发编程艺术》,在看到第六章的时候出现了下面这段我不是很理解的东西,如下 《java并发编程艺术》截取 为什么要使用ConcurrentHashMap 在并发…
Synchronized与Lock的区别与应用场景
同步代码块,同步方法,或者是用java提供的锁机制,我们可以实现对共享资源变量的同步控制。 技术点: 1、线程与进程: 在开始之前先把进程与线程进行区分一下,一个程序最少需要一个进程,而一个进程最少需要一个线程。关系是线…
实现生产者消费者的三种方式
文章目录 wait/notify的消息通知机制 预备知识 wait/notify消息通知潜在的一些问题 notify过早通知 等待wait的条件发生变化 假死状态 wait/notifyAll实现生产者-消费者 使用Lo…
重排序与数据依赖性
上一篇博客我们了解了Java内存模型,下面我们来了解一下重排序和数据依赖性的相关知识。 文章目录 为什么需要重排序 重排序分类 重排序过程 重排序对多线程的影响 数据依赖性 为什么需要重排序 现在的CPU一般采用流水线来…
原子操作类总结
文章目录 原子操作类简介 预备知识-CAS操作 原子更新基本类型 原子更新数组类型 原子更新引用类型 原子更新字段类型 原子操作类简介 在并发编程中很容易出现并发安全的问题,有一个很简单的例子就是多线程更新变量i=1,比…
掉了两根头发,可算是把volatile整明白了
本来想着快过年了偷个懒休息下,没想到被兄弟们连续催更,没办法,博主暖男嘛,掐着人中也要更,兄弟们卷起来 volatile关键字可以说是Java虚拟机提供的最轻量级的同步机制,但对于为什么它只能保证可见性,不保证原子性,它…
使用 C++ 封装互斥量、条件变量
本文使用 C++ RAII 机制来封装互斥量、条件变量,使其自动管理互斥量、条件变量的生命周期,避免手动维护带来的资源泄露等各种问题。本文使用的是 Linux 下 Pthread 库。 互斥量 MutexLock 首先封…
[书籍翻译] 《JavaScript并发编程》第五章 使用Web Workers
本文是我翻译《JavaScript Concurrency》书籍的第五章 使用Web Workers,该书主要以Promises、Generator、Web workers等技术来讲解JavaScript并发编程方面的实…
java并发编程
一. 程序,进程,线程 程序:代码实现了功能,就是程序,是静态的 进程:执行中的程序就是进程,是动态的。是操作系统分配资源的最小单位 线程:进程内的一个执行单元,是程序执行的最小单位 二. jvm(java虚拟机)内存划…