![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
高并发编程
文章平均质量分 84
烟雨江南aabb
这个作者很懒,什么都没留下…
展开
-
阻塞队列和线程池
队列已经满的时候,往队列塞数据的时候阻塞队列为空的时候,往外拿取元素的时候阻塞有界:队列长度是有限的,满了以后生产者就会阻塞无界:队列长度是无限的,可以不停的往里添加东西而不会阻塞。原创 2024-06-10 17:10:08 · 214 阅读 · 0 评论 -
Java线程同步内存实现
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习..原创 2021-06-16 18:27:35 · 182 阅读 · 0 评论 -
线程和进程
应用程序是指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。应用程序通常又被分为两部分:图形用户接口(GUI)和引擎。线程是CPU调度的最小单位。线程不能独立存在,必须依赖于进程。原创 2024-06-10 07:54:28 · 2027 阅读 · 0 评论 -
Java同步synchronized
一. synchronized是什么?synchronized是Java的一个关键字,synchronized依赖于JVM具体实现。synchronized的作用synchronized也称为同步锁。synchronized是一种独占锁。synchronized的两大功能:内存可见性 操作原子性什么是内存可见性?可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。可参考《Java内存分级和指令重排序》。volatile也可实现内存原创 2021-06-25 15:07:45 · 530 阅读 · 1 评论 -
Java ReentrantLock锁
1. 什么是ReentrantLock?ReentrantLock称为可重入锁,或者中心锁。ReentrantLock加锁后需要手动解锁。2.ReentrantLock的使用方法 含义 备注 lock 加锁 加锁以后不会自动解锁,需要手动解锁(unlock)。当一个线程lock以后,其他线程lock时,会加入等待队列。 unlock 解锁 释放锁,和一般和lock成对使用 tryLock 尝试申请锁 尝试加锁,申请失败不加入等待原创 2021-06-30 19:21:34 · 234 阅读 · 1 评论 -
Java AQS
1.什么是AQSAQS是AbstractQueuedSynchronizer,抽象队列同步器,AQS定义了一套多线程访问共享资源的同步器框架。AQS是一个通过内置的FIFO双向队列来完成线程的排队工作(内部通过结点head和tail记录队首和队尾元素,元素的结点类型为Node类型,后面我们会看到Node的具体构造)。AQS定义两种资源共享方式:Exclusive(独占,只有一个线程能执行,如ReentrantLock)和Share(共享,多个线程可同时执行,如Semaphore/Coun原创 2021-06-30 17:50:26 · 167 阅读 · 1 评论 -
Java CAS机制
一. 什么是CAS?CAS是一个硬件同步原语。CAS Compare And Swap(比较并交换)过程讲解。例如以 count++为例1)当前线程1读取count的当前值E,此时读取到的值为4;2)计算结果值V,count++ 结果为5;3)比较此时count的当前值E和最新值N,两者相等的话,即此时count没有修改,结果值为2)计算的结果值V,将结果值更新,即将count更新为5,计算结束;4)如果当前值E和最新值N不相等,则表示count被别的线程修改过,结果值需要重原创 2021-06-29 16:46:42 · 489 阅读 · 1 评论