多线程
Jack方
这个作者很懒,什么都没留下…
展开
-
(六)Java多线程——线程池
线程池首先有几个接口先了解第一个是Executor,第二个是ExecutorService再后面才是线程池的一个使用ThreadPoolExecutor1、ExecutorExecutor 顾名思义执行者,所有他有一个方法叫执行,执行的东西叫Runnnable,由于它是一个接口,所以它有很多实现,因此我们说有了Executor之后呢,我们线程就是一个任务的定义,比如RUnnable起了一个命令的意思,他的定义和运行就可以分开了,不像我们以前定义一个Thread,new一个Thread然后去重写的R.原创 2021-06-30 15:39:37 · 1116 阅读 · 5 评论 -
(五)Java多线程 —— 并发容器
从Vector到Queue的发展代码解释:有一万张车票,分10个窗口卖票(也就是10个线程),看看各种容器在这种场景下会不会超卖以及效率。总结:1- ArrayList 没有加锁 线程不安全 超卖2- Vector size和remove都有加锁 但是他们2个中间没有加锁 会超卖3- LinkedList 使用了并发容器 并且加了synchronized 可以实现 但是效率不是最高方案4- 效率最高的queue 多线程的单个元素的时候可以考虑用queueimport java.util.原创 2021-06-29 17:15:58 · 459 阅读 · 0 评论 -
(四)Java多线程 -- 并发同步工具CountDownLatch 倒数门栓、CyclicBarrier 循环栅栏、Phaser 阶段、ReadWriteLock 读写锁、Semaphore 信号灯
1、CountDownLatch 倒数门栓代码解释:门栓计数100,每一个线程结束的时候我让latch.countDown(),然后所有线程start(),再latch.await(),最后结束。作用:latch.await() 的作用就相当于门卫,每个线程执行完成都会减一,直到=0时,门卫就会开门。然后执行后面的代码。相比join更为灵活/** * 多线程生成雪花ID */ public static void main(String[] args) thro原创 2021-06-28 16:15:12 · 704 阅读 · 0 评论 -
Async异步线程执行器的定义与使用
java后台很多场景是需要异步去处理的,比如耗时比较的大的,以及当前任务关系不是很依赖的推送、发送短信、赠送卡券优惠券、打包zip等等。这个时候异步执行器会很方便。1、定义多线程池启用异步注解:@EnableAsyncExecutorConfig.javaimport lombok.extern.slf4j.Slf4j;import org.springframework.context.annotation.Bean;import org.springframework.context..原创 2021-03-30 11:13:02 · 1515 阅读 · 0 评论 -
(三)Java多线程 —— 并发编程与线程安全
并发编程与线程安全一、并发模拟Postman:Http请求模拟,并发模拟Apache Bench(AB):Apache附带的工具,测试网址性能JMeter:Apache组织开发的压力测试工具代码:Semaphore(信号量)、CountDownLatch(计数器)二、线程安全性定义:当多个线程访问某个类时,不管运行时环境采用【何种调度方式】或者这些进程将如何交替执行,并且在主调代码中【不需要任何额外的同步或协同】,这个类都能表现出【正确的行为】,那么就称这个类是线程安全的。原子性:提供原创 2020-06-18 17:05:12 · 911 阅读 · 0 评论 -
(二)Java多线程 —— 并发编程的基础
并发编程的基础一、 CPU多级缓存1)为什么需要CPU cache:CPU的频率太快了,主存跟不上,这样在处理器时钟周期内,CPU常常需要等待主存,浪费资源。所以cache的出现,是为了缓解CPU和内存之间速度的不匹配问题(结构:cpu -> cache -> memory).2)CPU cache有什么意义:时间局部性:如果某个数据被访问,那么在不久的将来它可能被再次访问。空间局部性:如果某个数据被访问,那么与它相邻的数据很快也可能被访问。3)CPU 多级缓存 - 缓原创 2020-06-18 16:31:23 · 631 阅读 · 0 评论 -
(一)Java多线程 —— 基本概念
一 、基本概念并发同时拥有两个或者多个线程,如果线程在单核处理器上运行,多个线程将交替地换入或者换出内存,这些线程是同时“存在”的,每个线程都UC呼吁执行过程中的某个状态,如果运行在多核处理器上,此时,程序中的每个线程都将分配到一个处理器核上,因此可以同时运行。高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够 同时并行处理 很多请求。对比并发:多个线程操作相同的资源,保证线程安全,合理使用资源。高并发:服务能同时处原创 2020-06-18 16:08:03 · 764 阅读 · 0 评论