![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
内容目前只涉及到博主在实际开发中用到的东西
文·若
架构师们好,我是练习两年半的java实习生,喜欢唱跳rap篮球
展开
-
Java非阻塞异步编程——CompletableFuture
前言对于Node开发者来说,非阻塞异步编程是他们引以为傲的地方。而在JDK8中,也引入了非阻塞异步编程的概念。所谓非阻塞异步编程,就是一种不需要等待返回结果的多线程的回调方法的封装。使用非阻塞异步编程,可以很大程度上解决高并发场景的各种问题,提高程序的运行效率。为什么要使用非阻塞异步编程在jdk8之前,我们使用java的多线程编程,一般是通过Runnable中的run方法进行的。这种方...原创 2020-04-10 12:49:38 · 2394 阅读 · 4 评论 -
volatile关键字的使用
前言在Java中为了加快程序的运行效率,对一些变量的操作通常是在该线程的寄存器或是CPU缓存上进行的,之后才会同步到主存中,而加了volatile修饰符的变量则是直接读写主存。Volatile解决数据可见性问题Volatile 保证了线程间共享变量的及时可见性,但不能保证原子性用到多线程做全局共享时,最好加上volatile关键字以下代码,把flag改为false之后,程序依然...原创 2019-10-16 19:33:04 · 363 阅读 · 0 评论 -
多线程中ThreadLocal的使用
前言多线程是Java的一个重要特性,多线程从某方面可以等价于多任务,当你有多个任务要处理时,多个任务一起做所消耗的时间肯定比任务串行起来做,所消耗的时间短。而对于多线程不熟悉的新手则容易踩到很多坑,最典型的则是变量问题。概念介绍下面先用简单粗俗的语言解释一下几个基本概念线程安全:多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读...原创 2019-10-13 23:18:05 · 1058 阅读 · 3 评论 -
Java内存模型
大多数文章把内存模型谈到堆栈概念,这个其实叫内存结构(小声)。但是实际上的内存模型并不指这个。内存模型(JMM)决定一个线程对共享变量的写入时,能够对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。本地内...原创 2019-10-13 22:44:30 · 153 阅读 · 0 评论