多线程
文章平均质量分 91
aoxida
这个作者很懒,什么都没留下…
展开
-
图解 | 原来这就是线程池
目录 第一版 第二版 第三版 第四版 第五版 总结 小宇:闪客,我最近看到线程池,被里边乱七八槽的参数给搞晕了,你能不能给我讲讲呀? 闪客:没问题,这个我擅长,咱们从一个最简单的情况开始,假设有一段代码,你希望异步执行它,是不是要写出这样的代码? 小宇:嗯嗯,最简单的写法似乎就是这样呢。 闪客:这种写法当然可以完成功能,可是你这样写,老王这样写,老张也这样写,程序中到处都是这样创建线程的方法,能不能写一个统一的工具类让大家调用呢? 小宇:可以的,感觉有一个统一的工具类,..转载 2021-02-07 16:32:21 · 131 阅读 · 0 评论 -
公平锁与非公平锁
公平锁:多个线程按照申请锁的顺序去获得锁,线程会直接进入队列去排队,永远都是队列的第一位才能得到锁。 优点:所有的线程都能得到资源,不会饿死在队列中。 缺点:吞吐量会下降很多,队列里面除了第一个线程,其他的线程都会阻塞,cpu唤醒阻塞线程的开销会很大。 非公平锁:多个线程去获取锁的时候,会直接去尝试获取,获取不到,再去进入等待队列,如果能获取到,就直接获取到锁。 优点:可以减少CPU唤醒线程的开销,整体的吞吐效率会高点,CPU也不必取唤醒所有线程,会减少唤起线程的数量。 缺点:你们可能也发现了..转载 2021-01-15 10:33:56 · 188 阅读 · 0 评论 -
CountDownLatch用法详解
概念 CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有框架服务之后执行。 CountDownLatch的用法 CountDownLatch典型用法1:某一线程在开始运行前等待n个线程执行完毕。将CountDownLatch的计数器初始化为nnew CountDownLatch(n),每当一个任务线程执行完毕,就将计数器减1countdownlatch.countDown(),当计...转载 2020-05-15 10:47:23 · 862 阅读 · 0 评论 -
Java高并发书籍推荐
1.Java并发编程实战 (java并发的圣经) 2.多处理器编程的艺术(并发编程的各种算法,java实现,有点难度) 3.并发的艺术 (多核处理器的共享内存模型中的各种算法) 4.Java虚拟机并发编程 (jvm平台上各种语言的并发比较,如java,scala,clojure) 5.Java并发编程的艺术 6.Java 7并发编程实战手册 (java中的并发编程实践,属于API工具书,...转载 2020-05-04 01:45:39 · 5951 阅读 · 1 评论 -
深入研究 Java Synchronize 和 Lock 的区别与用法
在分布式开发中,锁是线程控制的重要途径。Java为此也提供了2种锁机制,synchronized和lock。做为Java爱好者,自然少不了对比一下这2种机制,也能从中学到些分布式开发需要注意的地方。 我们先从最简单的入手,逐步分析这2种的区别。 一、synchronized和lock的用法区别 synchronized:在需要同步的对象中加入此控制,synchronized转载 2016-02-18 11:22:45 · 1219 阅读 · 0 评论 -
innodb 多版本并发控制原理详解
多版本并发控制技术已经被广泛运用于各大数据库系统中,如Oracle,MS SQL Server 2005+, Postgresql, Firebird, Maria等等,开源数据库MYSQL中流行的INNODB引擎也采用了类似的并发控制技术.本文就将结合实例来解析不同事务隔离等级下INNODB的MVCC实现原理. 1 MVCC概述 1.1 MVCC简介 MVCC (Multi转载 2016-02-18 23:36:50 · 7460 阅读 · 1 评论 -
Java并发编程:深入剖析ThreadLocal
Java并发编程:深入剖析ThreadLocal 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对ThreadLocal的理解转载 2016-02-19 01:48:06 · 656 阅读 · 0 评论