随笔分类 - java 多线程
摘要:SpringBoot中如何优雅的使用多线程 在 SpringBoot 应用中,经常会遇到在一个接口中,同时做事情1,事情2,事情3,如果同步执行的话,则本次接口时间取决于事情1 2 3执行时间之和;如果三件事同时执行,则本次接口时间取决于事情1 2 3执行时间最长的那个,合理使用多线程,可以大大缩短
阅读全文
摘要:ThreadLocal主要有如下2个作用(在之前文章的基础上加了新内容) 保证线程安全 在线程级别传递变量 保证线程安全 最近一个小伙伴把项目中封装的日期工具类用在多线程环境下居然出了问题,来看看怎么回事吧 日期转换的一个工具类 public class DateUtil { private sta
阅读全文
摘要:第一种方式: package mianshi.Thread; /** * 2个线程 循环打印 abab * 实现1: * note: 2个线程操作 Work类, work类里面 实现互斥的 2个打印方法 A B。 2个线程各自调用A,B */ public class ThreadA { publi
阅读全文
摘要:多线程,会有指令重排问题,造成 new 对象时候, 步骤不一致,用 volatile修饰可以。
阅读全文
摘要:JMM JAVA内存模型: 1.各个线程中的工作内存不可见,volatile可以解决可见性 可见性: 如下图: 主内存:所有变量都存储在主内存,各线程都可以访问 线程工作内存: 1.要将主内存变量拷贝回来自己工作内存, 2.如果有修改,修改工作内存副本,然后将变量写回主内存。 内存可见性:如果A线程
阅读全文
摘要:ThreadLocal是什么? 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”
阅读全文
摘要:随着计算机技术的发展,编程模型也越来越复杂多样化。但多线程编程模型是目前计算机系统架构的最终模型。随着CPU主频的不断攀升,X86架构的硬件已经成为瓶,在这种架构的CPU主频最高为4G。事实上目前3.6G主频的CPU已经接近了顶峰。 如果不能从根本上更新当前CPU的架构(在很长一段时间内还不太可能)
阅读全文
摘要:一、线程的基本概念 线程理解:线程是一个程序里面不同的执行路径 每一个分支都叫做一个线程,main()叫做主分支,也叫主线程。 程只是一个静态的概念,机器上的一个.class文件,机器上的一个.exe文件,这个叫做一个进程。程序的执行过程都是这样的:首先把程序的代码放到内存的代码区里面,代码放到代码
阅读全文
摘要:结果如下: Thread-0:1Thread-0:2Thread-0:3Thread-0:4Thread-0:5Thread-1:helloThread-0:6Thread-0:7Thread-0:8Thread-0:9Thread-0:10
阅读全文