JAVAvolatile与内存屏障 volatile 介绍 volatile是一个特征修饰符,被volatile修饰的变量能够保证每个线程能够获取该变量的最新值,从而避免出现数据脏读的现象 volatile的两大特性 1、可见性:立即刷新回主内存+失效处理。 2、有序性:禁止指令重排,存在数据依赖关系的禁止重排。 ... 4个月前 (02-04) 322℃ 0喜欢
JAVAJMM 内存模型 JMM介绍 JMM是指JAVA内存模型,JVM是java虚拟机的意思,两者是截然不同的两个东西,他们两个之间的关系类似于雷锋和雷锋塔的关系 JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在它仅仅描述的是一组约定或规范,通过... 4个月前 (02-04) 272℃ 0喜欢
JAVALockSupport和线程等待唤醒机制 LockSupport是什么 Lock Support从字面意思直接翻译过来是锁的支撑类,是一个改进类。下面就看一下这个技术为什么会出现,解决了那些老技术不方便不灵活的问题。 官方解释:用于创建锁和其他同步类的基本线程阻塞原语。 核心就是park()和unpark()方法 pa... 4个月前 (02-03) 269℃ 0喜欢
JAVAJAVA 线程中断机制 什么是中断机制 首先: 一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。 所以,Thread.stop, Thread.suspend, Thread.resume 都已经被废弃了。 其次: 在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,... 6个月前 (12-09) 497℃ 5喜欢
多线程Future 异步编程 Future 介绍 Future 是Java5新加的一个接口,它提供了一种异步并行计算的功能。 如果主线程需要执行一个很耗时的计算任务,我们就可以通过future把这个任务放到异步线程中执行。主线程继续处理其他任务或者先行结束,在通过Future获取计算结果。 一句话:Futur... 6个月前 (12-07) 277℃ 0喜欢
JAVAThreadPoolExecutor创建线程池 介绍 在java.util.concurrent中,提供了工具类Executors(调度器)对象来创建线程池,可创建的线程池有四种: 1、CachedThreadPool:可缓存线程池,如果数据请求过多,它会不断创建新的线程,并且它还可以灵活回收空闲的线程 2、FixedThre... 7个月前 (11-19) 353℃ 1喜欢
JAVAJAVA-线程池与JUC 线程池 并发是伴随着多核处理器的诞生而产生的,为了充分 利用硬件资源,诞生了多线程技术。但是多线程又存在资源竞争的问题,引发了同步和互斥的问题,JDK 1.5推出的java.util.concurrent(并发工具包)来解决 这些问题。 new Thread的弊端 new Th... 9个月前 (09-05) 437℃ 3喜欢
JAVAJAVA-线程安全问题及解决 什么是线程安全问题 当我们使用多个线程访问同一资源(可以是同一个变量、同一个文件、同一条记录等)的时候,若多个线程只有读操作,那么不会发生线程安全问题。但是如果多个线程中对资源有读和写的操作,就容易出现线程安全问题。 举例1: 举例2: 火车站要卖票,我们模拟火车站的卖票过程。... 9个月前 (09-05) 401℃ 0喜欢
JAVAJAVA-多线程 多线程的一些概念 什么是并发: 并发就是指程序同时处理多个任务的能力。 并发编程的根源在于对多任务情况下对访问资源的有效控制。 程序、进程与线程 程序:是静态的概念,比如qq、微信、网易云音乐都是程序的一种。 进程:是动态的概念,是程序在运行的状态,进程说明程序在内存中的边界。 ... 9个月前 (09-05) 349℃ 0喜欢