多线程
危楼高百尺,
手可摘星辰。
不敢高声语,
恐惊天上人。
Hey 锡瑞
这个作者很懒,什么都没留下…
展开
-
ThreadLocal 线程本地变量原理(栈变量)
###来自百度百科解释:DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value 等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大...原创 2019-04-17 15:00:00 · 1090 阅读 · 0 评论 -
Java并发: 监视器Monitor、等待/通知机制原理解析
问题描述:如果在当前线程持有锁时调用Thread.sleep则可能导致性能和可伸缩性问题,因为持有锁的线程的执行被冻结。最好对monitor对象调用wait来暂时释放锁并允许其他线程运行Monitor介绍:Monitor是一种用来实现同步的工具 与每个java对象相关联,即每个java对象都有一个Monitor与之对应 Monitor是实现Sychronized(内置锁)的基础Monitor的基本结构:Owner字段:初始时为NULL表示当前没有任何线程拥有该monitor record.原创 2020-12-14 18:16:45 · 975 阅读 · 0 评论 -
Java线程池深入研究
一、ThreadPoolTaskExecutor和ThreadPoolExecutor有何区别?ThreadPoolTaskExecutor是spring core包中的,而ThreadPoolExecutor是JDK中的JUC,ThreadPoolTaskExecutor是对ThreadPoolExecutor进行了封装处理。祖类都是调用Executor接口。(Executor 顾名思义...原创 2020-02-27 21:09:28 · 344 阅读 · 4 评论 -
多线程(6):Java多线程设计模式《图解Java多线程设计模式》观后感
以下是读者阅读《图解Java多线程设计模式》.[日].结城浩 后觉得用得比较多的几种Java多线程设计模式精简总结一.Producer-Consumer(生产者-消费者)模式1.几种角色理解(1)Data:由Producer角色生成,供Consumer角色使用(2)Producer(生产者):生成Data角色,并将其传递给Channer通道角色(3)Consumer(消费者):...原创 2019-11-25 18:03:11 · 287 阅读 · 0 评论 -
多线程(5):Java多线程中的并发容器
一、JDK提供的并发容器都有哪些JDK提供的容器大多在java.util.concurrent包中。ConcurrentHashMap:线程安全的HashMap CopyOnWriteArrayList:线程安全的List。在读多写少的场合性能非常好,远远好于Vector ConcurrentLinkedQueue(非阻塞队列):线程安全的LinkedList。并发队列,非阻塞队列...原创 2019-11-25 15:57:28 · 233 阅读 · 0 评论 -
多线程(4):Java线程同步机制中的锁优化以及线程池技术
一、锁优化这里的锁优化讲的是JVM对synchronized 的优化。1.1、自旋锁原理(思想):互斥同步进入阻塞态的开销很大。自旋锁的思想是 让一个线程在请求一个共享数据的锁时,执行忙循环(自旋)一段时间,如果在这段时间内能够获得锁,就可以避免进入阻塞状态。适用场景:虽然能避免进入阻塞从而减少开销,但它需要进行忙循环操作占用CPU时间。它只适合用于共享数据的锁定状态很短...原创 2019-11-21 09:28:04 · 1411 阅读 · 0 评论 -
多线程(3):Java线程同步机制中的高级应用
一.CAS与原子变量1.1、原子类Atomic原子类底层使用 CAS无锁技术 实现线程安全,面试时谈CAS得先谈Java内存模型(1)什么是原子类具有原子/原子操作特征的类并发包java.util.concurrent(J.U.C)的原子类都存放在java.util.concurrent.atomic下(2)JUC包中的原子类是哪四类基本类型——使用原子的方式更新基...原创 2019-11-18 17:57:21 · 270 阅读 · 0 评论 -
多线程(2):Java线程同步机制中的锁
一、锁1.线程同步机制简介广义上将Java线程同步机制包括锁(内部锁、显式锁)、volatile关键字、final关键字、static关键字、一些相关的API(如:wait()、notify()等)2.什么是锁可以理解为有一种许可证可以保证线程安全,它将多线程对共享数据(共享变量、共享资源)的并发访问变为串行访问,即一个共享数据只能被一个线程访问,该线程访问结束后其他线程才能访问,...原创 2019-11-15 15:58:37 · 575 阅读 · 2 评论 -
多线程(1):Java多线程基础以及线程间的协作
一.多线程基础概念1.多线程的几种创建方式(1)继承Thread类(也可用匿名内部类),重写run() 方法(2)实现Runnable接口,重写run() 方法(3)实现Callable接口注意:实现Runnable和Callable接口的类只能当做一个 可以在线程中运行的任务,任务是通过线程驱动从而执行的,不是真正意义上的线程。最后还是通过Thread来调用,与Runna...原创 2019-10-31 13:02:27 · 258 阅读 · 0 评论 -
多线程如何执行同一个任务
###UI控制层:private static Boolean WEBINUSE = false; @GET @Path("/testWebserviceAll/{type}/{startIndex}") public String testWebserviceAll(@PathParam("type")String typeName,@PathParam("startIndex"...原创 2018-12-12 20:53:45 · 2375 阅读 · 0 评论