![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
huopusa
这个作者很懒,什么都没留下…
展开
-
多线程中volatile的理解和static的区别
1.多线程访问同一个可变变量,需增加同步机制说明:根据Java Language Specification中对Java内存模型的定义, JVM中存在一个主内存(Java Heap Memory),Java中所有变量都储存在主存中,对于所有线程都是共享的。每个线程都有自己的工作内存(Working Memory),工作内存中保存的是主存中某些变量的拷贝,线程对所有变量的操作都是在工作内存中进行...原创 2018-06-13 11:30:53 · 5680 阅读 · 0 评论 -
java线程基础点总结
一、概念1、线程中断2、估算线程池大小的经验公式 Ncpu = CPU的数量 Ucpu = 目标CPU的使用率,0<= Ucpu <=1; W/C = 等待时间/计算时间 Nthreads = Ncpu*Ucpu*(1+W/C) 其中:Ncpu 可以用Runtime.getRuntime().av...原创 2018-07-05 11:55:02 · 155 阅读 · 0 评论 -
reentrantlock的实现和Synchronied的区别
reentrantlock的实现和Synchronied的区别区别:这两种方式最大区别就是对于Synchronized来说,它是java语言的关键字,是原生语法层面的互斥,需要jvm实现。而ReentrantLock它是JDK 1.5之后提供的API层面的互斥锁,需要lock()和unlock()方法配合try/finally语句块来完成。SynchronizedSynchro...转载 2018-10-04 17:18:00 · 680 阅读 · 0 评论 -
线程池管理工具类
package com.tjy.utils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.concurrent.*;public class ExecutorServiceUtil { private static final int CPU_COUNT = Runtime.ge...原创 2019-06-17 12:18:15 · 497 阅读 · 0 评论