volatile 作用 保证线程可见性 使用volatile,将会强制所有线程都去堆内存中读取变量的值 -MESI(CPU的缓存一致性协议) 详细可看 https://www.cnblogs.com/z00377750/p/9180644.html 禁止指令重排序(CPU级别的支持) cpu级别增加 ...
分类:
编程语言 时间:
2021-06-08 23:17:33
阅读次数:
0
title: TCP date: 2021-06-07 22:42:01 tags: NET categories: Java description: top_img: comments: cover: TCP InetAddress **作用:**封装计算机的IP地址和DNS(没有端口信息)。 ...
分类:
编程语言 时间:
2021-06-08 23:17:07
阅读次数:
0
1.CountDownLatch CountDownLatch 允许一个或多个线程等待其他线程完成操作。假设现有一个需求:我们需要解析一个 Excel 里多个 sheet 的数据,此时可以考虑使用多线程,每个线程解析一个 sheet 的数据,等到所有的 sheet 都解析完之后,程序需要提示解析完成 ...
分类:
编程语言 时间:
2021-06-08 22:37:25
阅读次数:
0
1.java基础 --java起源:1991年由Sun Microsystems公司的James Gosling等人开发,最初名为Oak,1995年更名为Java. --java是一种计算机语言,一种程序设计语言. --java继承C的语法,java的对象模型从C++改编而来. --java主要术语 ...
分类:
编程语言 时间:
2021-06-08 22:33:23
阅读次数:
0
package cn.ruhsang.syn;import java.util.ArrayList;import java.util.List;//线程不安全的集合public class UnsafeList { public static void main(String[] args) { L ...
分类:
编程语言 时间:
2021-06-08 22:30:05
阅读次数:
0
? 多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般在访问共享变量的时候需要进行额外的同步措施才能保证线程安全性。ThreadLocal是除了加锁这种同步方式之外的另一种保证多线程访问时线程安全的方法,当我们在创建一个变量后,如果每个线程 ...
分类:
其他好文 时间:
2021-06-07 21:13:52
阅读次数:
0
线程的状态图 新建(NEW):新创建了一个线程对象。 可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。 运行(RUNNING):可运行状态(runnable)的线程获 ...
分类:
编程语言 时间:
2021-06-07 21:10:52
阅读次数:
0
1.Redis 真的只有单线程吗? 通常说,Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。 2.Redis 为 ...
分类:
编程语言 时间:
2021-06-07 20:43:17
阅读次数:
0
那么我们在开始介绍Java内存区域之前,我们先放一张内存区域的图,方便我们后面介绍的时候可以对照着看。 须知,本文是根据JDK8来介绍的。 程序计数器 首先它是线程私有的,它也称为代码的行号指示器,字节码解释器就是通过改变程序计数器的位置来确定下一行要执行的代码,它不存在OOM。 如果线程正在执行一 ...
分类:
其他好文 时间:
2021-06-07 20:29:28
阅读次数:
0
locker 分布式锁简介 分布式锁目前实现大部分方式 使用mysql 使用redis 使用zookeeper 基于此,成熟的案例有比如redisson 这种官方比较推荐的方案,为了深入研究,准备在这个项目中复现这3种形式的锁 锁的用途 分布式锁主要可以独立于服务之外,主要的目的是在集群中保证同一时 ...
分类:
其他好文 时间:
2021-06-07 20:07:12
阅读次数:
0