![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 88
爱敲代码的三毛
不要因为走得远就忘记当初为什么出发。
展开
-
ThreadLocal
ThreadLocal原创 2024-05-27 10:06:30 · 401 阅读 · 0 评论 -
JUC常用类
原子类、信号量、ReentrantLock原创 2023-08-06 14:06:04 · 380 阅读 · 0 评论 -
Java——cas+定时器(Timer)
在Java中,CAS代表Compare and Swap(比较并交换),是一种用于实现多线程并发操作的原子操作。原创 2023-07-28 16:53:18 · 181 阅读 · 0 评论 -
Java线程池
线程池原创 2023-07-22 14:22:49 · 122 阅读 · 0 评论 -
Java线程安全复习
线程安全问题是多线程中的重点和难点,在多线程各种随机的调度顺序下,代码存在着很多不确定因素,就容易让代码出现bug。原创 2023-07-21 13:54:43 · 133 阅读 · 0 评论 -
Java多线程基础复习
Java多线程基础知识复习原创 2023-07-20 12:19:59 · 298 阅读 · 0 评论 -
Java创建线程的6种方式
Java中的线程创建方式原创 2022-03-30 09:50:04 · 350 阅读 · 0 评论 -
Java中的线程池 ThreadPoolExecutor
为什么要有线程池?如果想了解线程池,首先要明白为什么要有线程池这个东西。多线程是解决并发编程的方案,但是进程有点太重量了(创建和销毁,开销比较大)因此引入了线程,线程比进程要轻量很对。即便如此,假如在某些场景中,需要频繁创建销毁线程,此时,线程的创建销毁和开销,也就不能忽视了。为了解决这样的问题:可以引入协程(在单线程里实现多任务的调度,并在单线程里维护多个任务间的切换)引入线程池使用线程池的好处合理的使用线程池能带来3个好处降低资源消耗,通过重复利用已经创建的线程降低线程创建和销毁原创 2022-02-07 22:41:54 · 434 阅读 · 1 评论 -
synchronized的锁升级
synchronizedsynchronized具体实现,这个是在JVM内部完成的开始使用的时候是乐观锁,如果发现锁的冲突率比较高,就会自动转换为乐观锁synchronized不是读写锁synchronized开始的时候是轻量级锁,如果锁被持有的时间较长/锁的冲突概率较高,就会升级成重量级锁synchronized是一个非公平锁synchronized是一个可重入锁synchronized为轻量级锁的时候,大概率是一个自旋锁;为重量级锁的时候大概率是一个挂起等待锁synchronized原创 2022-01-15 21:57:27 · 295 阅读 · 0 评论 -
一篇文章总结Java中的锁策略
文章目录一、乐观锁&悲观锁版本号机制二、使用步骤1.引入库2.读入数据总结一、乐观锁&悲观锁加锁,是一个开销比较大的事情,创建锁销毁锁都是会消耗资源的。我们希望在特定的场景下,针对场景做出一些取舍,好让锁更高效一些乐观锁:假设锁冲突的概率比较低,甚至都没有冲突,就只是简单处理一下冲突悲观锁:假设锁冲突的概率比较高,甚至于每次尝试加锁都会有冲突,此时就会愿意付出更多成本来解决冲突乐观锁,假设一般情况下都不会产生锁冲突,因此就尝试直接访问数据,如果发现了锁冲突 ,然后再去处理。悲观原创 2022-01-15 21:51:54 · 269 阅读 · 0 评论 -
Java阻塞队列BlockingQueue(生产者消费者模型)
文章目录阻塞队列生产者消费者模型总结阻塞队列阻塞队列是一种特殊的队列,JDK中提供了很多种阻塞队列,不过我们常见的就是 LinkedBlockingDeque 和 PriorityBlockingQueue,它们都实现那了BlockingQueue接口,这里主要是使用LinkedBlockingDeque 来实现生产者消费者模型。LinkedBlockingDeque是一个用链表实现的有界阻塞队列,此队列的默认和最大长度为 Integer.MAX_VALUE。此队列遵循先进先出的原则。阻塞队列原创 2021-12-27 19:22:56 · 1435 阅读 · 0 评论 -
细说Java单例设计模式
文章目录饿汉模式懒汉模式啥叫设计模式?设计模式就好比我们下象棋中的棋谱,红方当头炮,黑方马来跳。针对红发的一些走法,黑方下的时候有一些固定套路,按照套路来走局势就会吃亏。就好比你打游戏玩某一个英雄,按照一定的打法打就不会打的太烂。而单例设计模是设计模式中非常常见的一种设计模式,单例模式能保证某个类在程序中只存在唯一一份实例,而不会创建多个实例。就比如我们在JDBC编程中,数据库的一些URL用户名就是唯一的实例。单例设计模式非为两种,一种饿汉式和懒汉式饿汉模式饿汉模式其实叫做立即加载,立即加原创 2021-11-10 12:00:00 · 439 阅读 · 1 评论 -
Java多线程(三)——线程安全
文章目录一、线程安全二、 产生线程不安全的原因三、解决线程安全1.synchronized1.互斥2.刷新内存3.可重入2.volatile一、线程安全线程安全是多线程中最核心的问题,也是最难的一个问题,这里面存在这很多不确定因素,所有多线程并不好驾驭。先来看一个列子,我们希望两个线程同时对一个变量各自自增5W次.public class TestThread { static class Count { int count = 0; public void原创 2021-11-08 12:00:00 · 867 阅读 · 0 评论 -
Java多线程(二)——Thread 类及常见方法和线程的基本操作
线程和进程的关系以及线程的创建。再来了解一下Java多线程类 Thread 的常见构造方法和属性。原创 2021-11-07 09:00:00 · 941 阅读 · 3 评论 -
Java多线程(一)——线程的概念和创建
文章目录二、使用步骤1.引入库2.读入数据总结# 一、进程要想了解进程可以看先看一下这一篇文章一个运行起来的程序就是一个进程,进程在操作系统中是这样管理的描述 :PCB(pid, 内存指针,文件描述符,进程的状态,上下文,记账幸喜等)示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot原创 2021-11-05 21:05:08 · 540 阅读 · 2 评论