
java 多线程安全
文章平均质量分 54
图灵传奇888888
这个作者很懒,什么都没留下…
展开
-
synchronized monitorenter 执行过程
原创 2023-10-23 08:34:36 · 110 阅读 · 0 评论 -
synchronized(监视器) Lock(监视器) 的区别, Condition(await,signal,signalAll) 比 object(wait,notify,notifyAll)
java condition lock转载 2021-05-14 09:28:29 · 257 阅读 · 0 评论 -
java手写线程池ThreadPoolExecutor 七大参数如何精准给定
java手写线程池ThreadPoolExecutor 七大参数如何精准给定在自定义线程池的时候,我们应该如何选择线程的核心数量?这里又一个简单的方法供大家参考。java 代码获取CPU核心数System.out.println(Runtime.getRuntime().availableProcessors());CPU 密集型:线程数量=cpu核心数量+1个线程的线程池IO 密集型:线程数量=cpu核心数量*2两种算法:第一种:第二种:...原创 2021-05-24 10:10:54 · 161 阅读 · 0 评论 -
java线程池 ExecutorService
java线程池原创 2021-05-20 16:27:01 · 133 阅读 · 0 评论 -
java 多线程 线程池 求List 集合对象中的年龄求和
import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.concurrent.*;/**Created by 45033535 on 2021/5/19.*/public class MultithreadingListSum {private int sum = 0;/**@Description: 多个线程求和@Version: 1.0原创 2021-05-20 16:25:53 · 370 阅读 · 0 评论 -
带有返回值的 callable 多线程接口
比如银行要做记账,数据非常多,要计算 总和,要把大量的数据拆分成小的数据段,这时就可以采用 callable 多线程接口来计算不同段的接口总值,然后get获取到段的总值然后在相加!callable和Runnable的区别是callable可以有返回值,也可以抛出异常的特性,而Runnable没有...原创 2021-05-18 09:52:41 · 121 阅读 · 0 评论 -
java JUC包 Semaphore 通常我们叫它信号量, 可以用来控制同时访问特定资源的线程数量,通过协调各个线程,以保证合理的使用资源。
1、Semaphore 是什么Semaphore 通常我们叫它信号量, 可以用来控制同时访问特定资源的线程数量,通过协调各个线程,以保证合理的使用资源。可以把它简单的理解成我们停车场入口立着的那个显示屏,每有一辆车进入停车场显示屏就会显示剩余车位减1,每有一辆车从停车场出去,显示屏上显示的剩余车辆就会加1,当显示屏上的剩余车位为0时,停车场入口的栏杆就不会再打开,车辆就无法进入停车场了,直到有一辆车从停车场出去为止。2、使用场景朱勇用于那些资源有明确访问数量限制的场景,常用于限流 。比如:数据库连原创 2021-05-09 22:13:57 · 110 阅读 · 0 评论 -
java JUC包 CyclicBarrier 它的作用就是会让所有线程都等待完成后才会继续下一步行动。
CyclicBarrier 是什么?从字面上的意思可以知道,这个类的中文意思是“循环栅栏”。大概的意思就是一个可循环利用的屏障。它的作用就是会让所有线程都等待完成后才会继续下一步行动。举个例子,就像生活中我们会约朋友们到某个餐厅一起吃饭,有些朋友可能会早到,有些朋友可能会晚到,但是这个餐厅规定必须等到所有人到齐之后才会让我们进去。这里的朋友们就是各个线程,餐厅就是 CyclicBarrier。怎么使用 CyclicBarrier2.1 构造方法public CyclicBarrier(in.转载 2021-05-09 21:40:21 · 133 阅读 · 0 评论 -
JAVA JUC包 CountDownLatch 这个类使一个线程等待其他线程各自执行完毕后再执行
1.背景:countDownLatch是在java1.5被引入,跟它一起被引入的工具类还有CyclicBarrier、Semaphore、concurrentHashMap和BlockingQueue。存在于java.util.cucurrent包下。2.概念countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就原创 2021-05-09 21:25:32 · 248 阅读 · 0 评论 -
java 锁的相关内容
一、公平锁:多个线程按照申请锁的顺序去获得锁,线程会直接进入队列去排队,永远都是队列的第一位才能得到锁。优点:所有的线程都能得到资源,不会饿死在队列中。缺点:吞吐量会下降很多,队列里面除了第一个线程,其他的线程都会阻塞,cpu唤醒阻塞线程的开销会很大。二、非公平锁:多个线程去获取锁的时候,会直接去尝试获取,获取不到,再去进入等待队列,如果能获取到,就直接获取到锁。优点:可以减少CPU唤醒线程的开销,整体的吞吐效率会高点,CPU也不必取唤醒所有线程,会减少唤起线程的数量。缺点:你们可能也发现了,这样原创 2021-05-02 21:07:02 · 104 阅读 · 0 评论 -
java集合类线程安全相关知识
arraylist 不是线程安全的,在单线程情况下很难报错,在多线程访问容易出现线程安全问题!多线程报错实现!import java.util.*;import java.util.concurrent.CopyOnWriteArrayList;import java.util.concurrent.TimeUnit;public class ArrayListAtomic {public static void main(String[] args) {List list = new Arr原创 2021-05-01 21:10:13 · 132 阅读 · 0 评论