Java多线程
文章平均质量分 79
介绍了Java多线程相关知识
hanxiaozhang2018
当你的才华还撑不起你的野心时,那你就应该静下心来学习!
展开
-
Java多线程基础知识-3
AQS是抽象的队列式同步和锁实现框架。它是除了java自带的synchronized关键字之外的锁机制。例如ReentrantLock、ReentrantReadWriteLock、Semaphore、FutureTask等都是基于AQS实现的。原创 2024-06-22 07:45:00 · 769 阅读 · 0 评论 -
Java多线程基础知识-2
CAS(CompareAndSwap)中文意思:比较并替换,它是一种无锁算法。CAS有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。CAS指令执行时,当且仅当V的值与A相等时,将V修改为B,否则就什么都不做,整个CAS操作是一个原子操作。原创 2024-06-20 07:15:00 · 874 阅读 · 0 评论 -
Java多线程基础知识-1
可执行的文件。进程是程序一次动态执行的过程,它是资源分配与管理的基本单位。概念:它是用户空间的线程,启动数量多,纤程之间切换资源消耗比较低。线程与纤程的本质区别是一个通过内核空间(线程),一个不通过内核空间(纤程)目前到JDK13并没有支持纤程。有意义,线程在wait或sleep下,不适用CPU。可以被其他线程利用。原创 2024-06-19 07:45:00 · 633 阅读 · 0 评论 -
解决lockInterruptibly()出现java.lang.IllegalMonitorStateException异常
我们在使用ReentrantLock锁时,可能会用lockInterruptibly()方法来处理使用interrupt()方法的线程打断。但是,在当前线程没有获得到锁时,执行interrupt()方法,就有可能抛出java.lang.IllegalMonitorStateException异常。原因是:我们在学习Lock锁时,都深深地记忆着unlock()解锁操作一定要放在finally中,但当前线程没有获得到锁,就去执行解锁操作一定会出现java.lang.IllegalMonitorS...原创 2021-11-14 09:18:44 · 727 阅读 · 0 评论 -
Java多线程十问十答(三)
前言:在这篇文章中,我将介绍一下线程池、Executor框架、ThreadLocal、CAS等相关知识,希望对大家的工作和学习有一定帮助!具体的内容如下:正文:Q&A1:线程池(ThreadPoolExecutor)的工作流程是什么?(1) 默认情况下,创建完线程池后并不会立即创建线程, 而是等到有任务提交时才会创建线程来进行处理。(除非调用prestartCoreThread或prestartAllCoreThreads方法)(2) 当线程数小于核心线程数时,每提交一个任...原创 2020-07-18 12:00:19 · 239 阅读 · 0 评论 -
Java多线程十问十答(二)
前言:上篇文章中讲解了Java多线程的基础知识,详见《http://Java多线程十问十答(一)》。接下来,我们来说一说Synchronized关键字、Volatile关键字和Lock锁相关知识,具体如下:正文:Q&A1:Synchronized基础知识:1) 作用:原子性:确保线程互斥访问同步代码,原因:synchronized底层调用monitorenter(对应lock操作)和monitorexit(对应unlock操作)来操作具备原子性;可见性:共享变量变更能即时可见原创 2020-07-11 11:12:50 · 208 阅读 · 0 评论 -
Java多线程十问十答(一)
前言:随着处理器的生产工艺的提升,处理器越来越趋向多核化。为了给用户更好的体验,充分利用处理器多核的特点,使用多线程技术是必然的选择。但是,Java关于线程的知识非常多又不容易理解,使用不当特别容易出事故等情况。可以说,多线程是程序员前进路上额绊脚石。...原创 2020-07-04 11:07:14 · 209 阅读 · 0 评论 -
为什么wait()方法要放在同步块中?
为了避免Lost Wake-Up问题,那什么是Lost Wake-Up问题呢?我们通过两个线程,一个模拟消费者线程,另一个模拟生产者线程来说明问题。我们简化生产者线程的任务是count加一,而后唤醒消费者;消费者的任务是将count减一,在减到0的时候陷入睡眠。我们通过一组伪代码看一下:生产者伪代码:count+1;notify();消费者伪代码:while(count &l...转载 2020-04-01 21:37:36 · 325 阅读 · 0 评论 -
一套超好用的“Excel导入导出+多线程处理导入数据+多线程事务回滚”的模板方法
Excel导入导出+多线程处理导入数据+多线程事务回滚的模板方法二、功能演示:1.Excel数据:数据说明:第一条数据完整,可以成功导入;第二条数据无姓名,业务逻辑姓名不允许为空,会导出到错误Excel中;第三条数据无姓名无类型,业务逻辑姓名类型不能为空,会导出错误Excel中。2.导入页面:选择相关Excel,点击导出测试按钮:3.正确数据入库:4.错误数据导出成Excel并有提示:...原创 2020-03-08 21:14:44 · 14296 阅读 · 14 评论