1.java并发包介绍 JDK5.0 以后的版本都引入了高级并发特性,大多数的特性在java.util.concurrent 包中,是专门用于多线程并发编程的,充分利用了现代多处理器 和多核心系统的功能以编写大规模并发应用程序。主要包含原子量、并发集合、同步器、可重入锁,并对线程池的构造提供了强力的 ...
分类:
编程语言 时间:
2018-06-08 15:58:04
阅读次数:
231
如果SetTimer的时间间隔为t,其响应事件OnTimer代码执行一遍的时间为T,且T>t。这样,一次未执行完毕,下一次定时到,这时候程序会如何执行?可能的情况:1、丢弃还未执行的代码,开始新的执行;2、不丢弃,Timer消息进入消息队列排队,等到原来的代码执行完毕后,马上开始新的执行;3、重入, ...
ReentrantLock,是一个可重入的互斥锁,它具有与使用synchronized方法和语句锁访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。 ReentrantLock的基本用法: 利用ReenthrantLock实现的线程程序中,线程没有交替,数据都是分组打印的,说明:一个线程打印 ...
分类:
其他好文 时间:
2018-06-04 14:12:38
阅读次数:
222
在Java5.0之前,只有synchronized(内置锁)和volatile. Java5.0后引入了显示锁ReentrantLock. ReentrantLock概况 ReentrantLock是可重入的锁,它不同于内置锁, 它在每次使用都需要显示的加锁和解锁, 而且提供了更高级的特性:公平锁, ...
分类:
其他好文 时间:
2018-05-27 00:57:32
阅读次数:
156
在Java5.0之前,只有synchronized(内置锁)和volatile. Java5.0后引入了显示锁ReentrantLock. ReentrantLock概况 ReentrantLock是可重入的锁,它不同于内置锁, 它在每次使用都需要显示的加锁和解锁, 而且提供了更高级的特性:公平锁, ...
分类:
其他好文 时间:
2018-05-25 22:47:29
阅读次数:
175
线程安全与可重入编写方法。 1、什么是线程安全当一个函数被多个线程反复调用的时候,他会一直产生正确的结果,那么这个函数就是线程安全的。线程安全函数解决了多个线程调用函数时访问临界资源的冲突问题。 2、可重入在多线程或有异常控制流的情况下,当某个函数运行到中途时,控制流有可能被打断去执行另一个函数,而 ...
分类:
编程语言 时间:
2018-05-21 16:09:10
阅读次数:
187
前言 今天我们继续学习并发。在之前我们学习了 JMM 的知识,知道了在并发编程中,为了保证线程的安全性,需要保证线程的原子性,可见性,有序性。其中,synchronized 高频出现,因为他既保证了原子性,也保证了可见性和有序性。为什么,因为 synchronized 是锁。通过锁,可以让原本并行的 ...
分类:
编程语言 时间:
2018-05-20 21:18:31
阅读次数:
173
目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两 ...
分类:
其他好文 时间:
2018-05-20 14:16:11
阅读次数:
173
JUC包的锁(可重入锁和读写锁) Lock是JAVA5增加的内容,在JUC(java.util.concurrent.locks)包下面,作者是并发大师Doug Lea。JUC包提供了很多封装的锁,包括常用的ReentrantLock和ReadWriteLock。这些所其实都是依赖java.util ...
分类:
其他好文 时间:
2018-05-19 21:57:51
阅读次数:
177
看的该文章的总结: https://juejin.im/post/5adf14dcf265da0b7b358d58 synchronized一般我们用来修饰三种东西: 修饰普通方法 修饰代码块 修饰静态方法 1.4.1修饰普通方法: 用的锁是Java3y对象(内置锁) public class Ja ...
分类:
其他好文 时间:
2018-05-18 01:18:59
阅读次数:
197