❀❀❀❀❀❀-并发
文章平均质量分 62
女汉纸一枚
丢弃对未来的怯懦,保持对未来的执着。
展开
-
【并发】上山容易下山难-优雅停止线程
文章目录介绍最佳实践1、如果正确停止线程2、错误停止的方法3、停止线程相关的重要函数解析常见问题介绍最佳实践1、如果正确停止线程2、错误停止的方法3、停止线程相关的重要函数解析常见问题...原创 2021-01-31 17:25:32 · 191 阅读 · 0 评论 -
【并发】-启动线程的正确方式
前言应用小结原创 2021-01-24 22:50:41 · 158 阅读 · 2 评论 -
【并发】-创建线程最基本的两种方式
前言应用小结原创 2021-01-17 00:14:01 · 109 阅读 · 0 评论 -
【多线程】-创建线程
第一种:创建线程方式为new Thread的子类,从而可以override父类thread中的run方法 //线程 Thread thread = new Thread(){ @Override public void run(){ } }; thread1.start(); 第二种: //线程 Thread threa...原创 2017-12-03 11:31:20 · 207 阅读 · 14 评论 -
【多线程】-线程范围内共享数据的两种方式
第一种,声明一个全局的map变量,用来存当前线程范围内的变量,用于线程范围内使用 //线程范围内共享变量public class ThreadScopeShareData { //声明一个存放全局变量的容器,来保存该变量在该线程范围内的状态 private static Map<Thread, Integer> threadData = new HashMap<...原创 2017-12-10 20:40:31 · 348 阅读 · 14 评论 -
【Java并发编程的艺术】并发编程的挑战
上下文切换1】什么是上下文切换?CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换。2】怎么测试上下文切换次数和时长?① 利用LMbench可以测试:带宽和延时,下载链接:http://www.bitmover.co...原创 2018-06-10 17:15:08 · 348 阅读 · 4 评论 -
【Java并发编程的艺术】Java并发机制的底层的实现原理
首先Java并发的实现依赖于JVM的实现和CPU的指令 【volatile】定义: Java线程内存模型确保所有线程看到的这个变量的值是一致性的。 特点: 保证变量修改在线程间可见 如何保证共享变量修改线程范围内可见性的?大多数都存在的情况下: 为了提高处理速度,处理器通常不直接操作内存,而是先将系统内存的数据读到内部缓存,然后在对还缓存...原创 2018-06-17 11:51:07 · 296 阅读 · 3 评论 -
【并发编程】CPU多级缓存与缓存一致性
CPU多级缓存与缓存一致性定义cpu缓存是位于CPU与内存之间的临时存储器,它的容量比内存小的多,但是交换速度却比内存要快得多为什么需要CPU cache?cpu的频率太快了,快到主存跟不上,这样在处理器时钟周期内,cpu常常需要等待主存,浪费资源。cache的出现,是为了缓解cpu和主存之间速度的不匹配问题(结构:cpu-&gt;cache&gt;memory)C...原创 2018-07-29 20:55:34 · 3131 阅读 · 9 评论 -
【并发编程】JAVA内存模型
JAVA内存模型定义JMM决定一个线程对共享变量的写入何时对另一个线程可见。抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存中,每个线程都有一个私有的本地内存。本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM的一个抽象概念,并不是真实存在。上图的通信过程1、线程A把本地内存A中更新过的共享变量刷新到主内存中去2、线程B到主...原创 2018-07-31 15:09:22 · 195 阅读 · 5 评论 -
【并发编程】线程安全性
线程安全性原子性定义提供了互斥访问,同一个时刻只能有一个线程来对它进行操作引入多线程情况下,进行count++操作。为了保证线程安全性,通常对该操作进行加锁,保证在count++的时候同步操作。Java提供了很多封装好的原子操作类。如可以替代刚刚提到加锁方式的AtomicInteger分类Atomic原子更新基本类型Atomic包提供了以...原创 2018-08-05 19:21:14 · 216 阅读 · 0 评论 -
【并发编程】8种单例模式
单例模式1、饿汉式(静态常量)-可用public class Singleton { private final static Singleton INSTANCE = new Singleton(); private Singleton(){} public static Singleton getInstance(){ return...原创 2018-08-12 15:02:46 · 426 阅读 · 2 评论