多线程
文章平均质量分 74
java多线程
X S
这个作者很懒,什么都没留下…
展开
-
生产者和消费者
假设有一个仓库,只能放一个对象,需要完成:两个线程一个生产一个消费 生产者—>java.lang.Object@6865ca8a 消费者—>java.lang.Object@6865ca8a 生产者—>java.lang.Object@5d561924 消费者—>java.lang.Object@5d561924 … 代码实现 import java.util.ArrayList; import java.util.List; public class ThreadDemo {原创 2021-03-19 15:20:16 · 118 阅读 · 0 评论 -
ThreadLocal
ThreadLocal 的作用主要是做数据隔离,填充的数据只属于当前线程,变量的数据对别的线程而言是隔离的,在多线程环境下,可以防止自己的变量被其它线程篡改。 Spring 采用 ThreadLocal 的方式,来保证单个线程的数据库操作使用的是同一个数据库连接。 底层原理: set 的源码: public void set(T value) { Thread t = Thread.currentThread(); // 获取当前线程 ThreadLocalMap map = getMap(原创 2021-03-19 13:33:44 · 98 阅读 · 0 评论 -
volatile详解
计算机中为什么会出现线程不安全的问题 计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中会涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低指令执行的速度。 为了处理这个问题,在CPU里面就有了高速缓存(Cache)的概念。当程序在运行过程中,会将运算需要的数据从主存复制一份原创 2021-03-07 22:20:59 · 278 阅读 · 1 评论 -
线程池
程序的运行,本质上是占用系统的资源,线程的创建、销毁十分销毁资源。优化系统资源的使用可以使用池化技术(线程池、连接池、内存池、对象池… ) 池化技术:事先准备好一些资源,有人要用,就从池中拿,用完还回来。 线程池:三大方法、七大参数、四种拒绝策略 线程池的好处: 降低资源的消耗 提高响应的速度 方便管理 线程复用、可以控制最大并发数、管理线程。 三大方法 import java.util.concurrent.ExecutorService; import java.util.concurrent.Ex原创 2020-12-20 17:24:51 · 97 阅读 · 1 评论 -
Java多线程基础
创建线程的三种方式 1.继承Thread类 public class ThreadTest01 extends Thread { @Override public void run() { for (int i = 0; i < 10; i++) { System.out.println("run--->" + i); } } public static void main(String[] args)原创 2020-12-14 18:44:37 · 83 阅读 · 0 评论