
多线程
文章平均质量分 80
午夜.幽魂.男
每个优秀的人,都有一段沉默的时光,那段时光是付出了很多努力,却得不到结果的日子,我们把它叫做扎根。
展开
-
线程生命周期,状态转换
线程相关总结原创 2021-12-14 10:07:34 · 297 阅读 · 0 评论 -
深入学习并发编程中的synchronized
run()和start()的区别原创 2021-11-17 13:51:05 · 741 阅读 · 0 评论 -
ConcurrentHashMap实现原理总结
战国千年 漫画姬青,带着不死挂,穿越到了高武版的春秋战国时代。 你有剑气如渊,我能不死不灭!你有盖世魔功,我能不死不灭!你有近神之招,我能不死不灭! (刻意强调金手指) 如何让昊天骨物尽其用;且看一个死不了的普通人,如何在这阶级森严,战乱不休的大争之世,只手挽天倾。九黎在远古时代是一个部落联盟,居住在黄河流域中下游地区以及长江流域一带。即山东、河北、河南、江苏地区。九黎以蚩尤为首领,有八十一......原创 2021-11-17 13:36:58 · 169 阅读 · 0 评论 -
多线程 线程池相关
线程池也是一种池化思想的实现,常见的有 线程池、字符串常量池、数据库连接池 等。线程复用,降低线程创建和销毁的造成的消耗4.源码corePoolSize–the number of threads to keep in the pool, even if they are idle, unless allowCoreThreadTimeOut is set池中要保留的线程数,即使它们处于空闲状态,除非设置了allowCoreThreadTimeOut( private volatile bool原创 2019-08-09 20:29:43 · 188 阅读 · 0 评论 -
CyclicBarrier
import lombok.AllArgsConstructor;import lombok.Data;import java.util.concurrent.*;public class T { @Data @AllArgsConstructor private static class Worker implements Runnable { ...原创 2019-10-19 00:41:41 · 116 阅读 · 0 评论 -
多线程 线程池
阻塞队列arrayblockingqueue;linkedblockingqueue;delayqueuetransferqueuesynchrousqueue非阻塞队列concurrentlistqueue低效率并发容器vector copyonwritelist, hashtable, synchronized修饰后的容器concurrenthashmap concurre...原创 2019-10-09 18:08:03 · 281 阅读 · 0 评论 -
多线程 守护线程
1.守护线程当主线程销毁,会和主线程一起销毁。如:当主线程运行的时候,gc线程一起运行。2.非守护线程如果主线程销毁,用户线程继续运行且互不影响。package mytest;public class Main { public static void main(String[] args) { Thread t1 = new Thread(new Runnab...原创 2019-09-10 17:59:36 · 120 阅读 · 0 评论 -
多线程 threadlocal 获取经办人信息
ThreadLocal作用工具类,提供一系列的方法去操作ThreadLocalMap,如:set、get、remove隔离Thread和ThreadLocalMap,防止程序员直接创建ThreadLocalMap(直接或间接);如何使用ThreadLocal在介绍ThreadLocal原理之前,首先简单介绍一下它的使用方法。public class Main{ //线程共享的...原创 2019-09-10 16:48:33 · 125 阅读 · 0 评论 -
可重入锁
ReentrantLock和synchronized在基本用法,行为语义上都是类似的,同样都具有可重入性。ReentrantLock可以实现公平锁,同时也可以绑定多个Conditon。可重入性:支持一个线程对锁的重复获取公平锁: 按照锁的申请时间来依次获得锁非公平锁 : 当锁被释放时,等待中的线程均有机会获得锁...转载 2019-08-16 20:43:04 · 219 阅读 · 0 评论 -
多线程 死锁
import java.util.concurrent.TimeUnit;public class T { private static Object o1 = new Object(), o2 = new Object(); public void get(int flag) { System.out.println(flag); ...原创 2019-08-16 12:49:49 · 83 阅读 · 0 评论 -
多线程 ReentrantLock
产品package proCus;/* * created by sj 2019年8月21日 */public class Product { int id; public Product(int id) { this.id = id; } @Override public String toString() { return "Product [id=" + id...原创 2019-08-21 12:02:34 · 118 阅读 · 0 评论 -
多线程 - CAS机制
引入:启动两个线程,每个线程中让静态变量count循环累加100次。最终输出的count结果是什么呢?一定会是200吗?因为这段代码不是线程安全,所以最终的自增结果很可能会小于200!说的很对,所以我们可以加上Synchronized同步锁,再看一看效果。加了同步锁,count自增的操作变成了原子性操作,所以最终的输出一定是count=200,代码实现了线程安全。Synchroniz...转载 2019-08-15 09:04:52 · 149 阅读 · 0 评论 -
Java中的锁
乐观锁总是假设最好的情况get操作时,不会有update操作get操作时,不会上锁update操作时,判断有没有其他update操作。可以用版本号机制和CASget操作频繁时,使用乐观锁,可以提高吞吐量。在Java中java.util.concurrent.atomic包下的原子变量类使用数据版本表示数据(时间戳,版本号)悲观锁总是假设最坏情况,get操作时 , 同时会有u...原创 2019-08-13 20:59:48 · 144 阅读 · 0 评论 -
多线程 ++i 线程不安全问题
Java内存模型简称JMM(Java Memory Model),是Java虚拟机所定义的抽象规范,用来屏蔽不同硬件和操作系统的内存访问差异,让java程序在各种平台下都能达到一致的内存访问效果。Java...原创 2019-08-19 22:02:54 · 169 阅读 · 0 评论