
Java并发编程
文章平均质量分 92
Raichos
这个作者很懒,什么都没留下…
展开
-
规范使用线程池与底层原理详解
什么是线程池 “线程池”顾名思义,就是存放线程的池子,这个池子可以存放多少线程取决于采用哪种线程池,取决于有多少并发线程,有多少计算机的硬件资源。 线程池优势 线程池最主要的工作在于控制运行线程的数量,从而做到线程复用、控制最大并发数量、管理线程。其具体的优势在于: 降低资源消耗:通过重复利用已经创建的线程降低线程创建和销毁造成的消耗; 提高响应速度:当任务到达时,任务可以不需要等到线程创建就能执行; 提高线程的可管理性:线程是稀缺资源,不能无限创建,否则会消耗系统资源、降低系统的稳定性,使用线程可以进行原创 2020-08-13 15:38:34 · 252 阅读 · 0 评论 -
Java集合多线程安全
一、线程安全 线程不安全集合: ArrayList LinkedList HashMap HashSet TreeMap TreeSet StringBulider 线程安全集合: Vector HashTable Properties 二、集合线程安全与解决方案 2.1ArrayList线程安全问题 package com.raicho.mianshi.mycollection; import java.util.ArrayList; import java.util.List; import原创 2020-07-17 20:35:38 · 340 阅读 · 0 评论 -
CAS底层原理与ABA问题
一、CAS定义 CAS(Compare And Swap)是一种无锁算法。CAS算法是乐观锁的一种实现。CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当预期值A和内存值V相同时,将内存值V修改为B并返回true,否则返回false。 二、CAS与synchronized synchronized加锁,同一时间段只允许一个线程访问,能够保证一致性但是并发性下降。 CAS是一个自旋锁算法,使用do-while不断判断(没有加锁),保证一致性和并发性,但是比较消耗CPU资源。使用CAS就可以不用加锁原创 2020-07-17 20:33:58 · 268 阅读 · 0 评论 -
Java并发编程volatile关键字
一、volatile理解 Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和volatile 关键字机制。volatile具有synchronized关键字的“可见性”,volatile变量对于每次使用,线程都能得到当前volatile变量的最新值,但是没有synchronized关键字的“并发正确性”,也就是说不保证线程执行的有序性。 二、特性 1、保证内存可见性 各个线程对主内存中共享变量的操作都是各个线程各自拷贝到自己的工作内存操作后再写回主内存中的。这就可能存在一个线程原创 2020-05-24 14:38:46 · 213 阅读 · 0 评论