thread
文章平均质量分 55
紫色的忧伤123456
热爱编程。熟悉.net 和java,从事过嵌入式开发。.net和java开发。
展开
-
线程死锁代码
DeadLockDemo //运行主类 public class DeadLockDemo { public static void main(String[] args) { DeadLock d1=new DeadLock(true); DeadLock d2=new DeadLock(false); Thread t1=new Thread(d1); Thread t2=new Thread(d2);原创 2022-05-22 16:17:05 · 260 阅读 · 0 评论 -
cas代码以及aqs和各种锁的概念
没有任何加锁的代码进行测试 package cn.yun.basic.thread.wait; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class CasDemo { /** * @Author longhua.shang1 * @Description 卖票操作,100张票卖个2000个人,分别没有任何锁,以及加锁状态下的各种实现 * @Date 1原创 2021-06-18 16:35:18 · 138 阅读 · 0 评论 -
Redissson
PromotionInfo promotionInfo = null; PromotionInfoResponse response = new PromotionInfoResponse(); String getSubmitRef = UUID.randomUUID().toString(); RLock redissonLock = redissonClient.getLock(PROMOTION_LOCK); try { .原创 2020-07-26 14:10:00 · 312 阅读 · 0 评论 -
Lock锁和redis混合的应用
PromotionInfo promotionInfo = null; PromotionInfoResponse response = new PromotionInfoResponse(); String getSubmitRef = UUID.randomUUID().toString(); lock.lock(); try { promotionInfo = promotionInfoMapper.selec..原创 2020-07-24 08:38:54 · 244 阅读 · 0 评论 -
Java并发:volatile关键字详解
概述volatile关键字可以说是Java虚拟机提供的最轻量级的同步机制,但是它并不容易完全被正确、完整地理解,以至于许多程序员都习惯不去使用它,遇到需要处理多线程数据竞争问题的时候一律使用synchronized来进行同步。了解volatile变量的语义对了解多线...转载 2019-04-15 13:45:59 · 137 阅读 · 0 评论 -
多线程学习笔记
1、多线程有什么用? (1)发挥多核CPU的优势 随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的,4核、8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%。单核CPU上所谓的”多线程”那是假的多线程,同一时间处理器只会处理一段逻辑,只不过线程之间切换得比较快,看着像多个线程”同时”运行罢了。多核CPU上的多线...转载 2018-11-02 16:10:50 · 108 阅读 · 0 评论 -
synchronized 与 Lock 的那点事
synchronized 与 Lock 的那点事 最近在做一个监控系统,该系统主要包括对数据实时分析和存储两个部分,由于并发量比较高,所以不可避免的使用到了一些并发的知识。为了实现这些要求,后台使用一个队列作为缓存,对于请求只管往缓存里写数据。同时启动一个线程监听该队列,检测到数据,立即请求调度线程,对数据进行处理。 具体的使用方案就是使用同步保...转载 2018-11-28 11:07:06 · 113 阅读 · 0 评论 -
深入解析Java锁机制
Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。 Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录: 1. 乐观锁 V...转载 2018-11-28 13:03:35 · 121 阅读 · 0 评论 -
JAVA线程池ThreadPoolExecutor
线程池概念: 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。 常用线程池 1. 最常用构造方法为: ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ...原创 2019-04-11 15:05:01 · 123 阅读 · 0 评论 -
CountDownLatch的用法
在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。 以下是本文目录大纲: 一.CountDownLatch用法 二.CyclicBarrier用法 三.Semaphore用法 一.CountDownLatch用法 CountDownLatch类...原创 2019-03-18 14:42:48 · 300 阅读 · 0 评论 -
ThreadLocal
ThreadLocal是什么 ThreadLocal提供线程局部变量。这些变量与普通的变量不同之处在于,每个访问这种变量的线程(通过它的get或set方法)都有自己的、独立初始化的变量副本。 ThreadLocal实例通常是希望将状态关联到一个线程的类的私有静态字段(比如,user ID 或者 Transaction ID 等等)。 ( 画外音:这段话表达了三个意思 ThreadLoca...原创 2019-03-19 16:34:27 · 97 阅读 · 0 评论 -
使用ThreadPool来解决大量数据处理请求
package book.thread.pool; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.State...原创 2019-03-19 17:03:42 · 572 阅读 · 0 评论 -
Java中sleep()与wait(),线程让步(yield())的区别
第一种解释: 功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步锁 还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait()可以用notify()直接唤起 第二种解释: sleep是Thread类的静态方法。sleep的作用是让线程休...原创 2019-04-08 17:54:32 · 137 阅读 · 0 评论