Java面试流程及核心面试题 面试整体流程 1.1 简单的自我介绍 我是xxxx,工作xxx年.我先后在xxxx…
分类:java并发
Java中lock锁的问题
Lock锁分为以下几种,可重入锁,非可重入锁,公平锁,非公平锁,读写锁。 可重入锁:synchronized和ReentrantLock锁均为可重入锁。当在一个获得了锁的方法中,调用另外一个需要获得锁的方法时,如果此时为…
终极锁实战:单JVM锁+分布式锁,同步中的四种锁synchronized、ReentrantLock、ReadWriteLock、StampedLock
1.前言 锁就像一把钥匙,需要加锁的代码就像一个房间。出现互斥操作的典型场景:多人同时想进同一个房间争抢这个房间的钥匙(只有一把),一人抢到钥匙,其他人都等待这个人出来归还钥匙,此时大家再次争抢钥匙循环下去。 作为终极实…
Java并发知识(2)
1. 什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes)? 原子操作是指一个不受其他操作影响的操作任务单元。原子操作是在多线程环境下避免数据不一致必须的手段。 int…
java中的死锁现象
死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 java 死锁产生的四个必要条件: 1、互斥使用,即当资源被一个线程使用(占有)时,别…
Java并发编程系列之四:锁与volatile的内存语义
前言 在前面的文章中已经提到过volatile关键字的底层实现原理:处理器的LOCK指令会使得其他处理器将缓存刷新到内存中(确切说是主存)以及会把其他处理器的缓存设置为无效。这里的内存语义则说的是在JMM中的实现,那么为…
关于java中线程死锁的例子
package Test; public class DieSock { // Single s1 = Single.getSingle(); // Single s2 = Single.getSingle(); sta…
Java文件锁以及并发读写中的应用
引言 在项目中,如果遇到需要并发读写文件的问题,那么对文件上锁分开访问是十分有必要的。因此这篇博文主要介绍文件锁的相关知识。有误之处,希望指出。 什么是文件锁 文件锁就如同编程概念中其他锁的意义一样。通过对文件上…
JUC--CountDownLatch
简介 CountDownLatch 允许一个或多个线程等待其他线程完成操作。 主要方法: public CountDownLatch(int count); public void …
生产者消费者模式的java实现(实现三)
Exchanger是java.util.concurrent类库下的一个并发工具。下面是java api文档里对Exchanger的描述。 A synchronization point at which thr…
Java:使用synchronized和Lock对象获取对象锁
在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制。 1. 对象的锁 所有对象都自动含有单一的锁。 JVM负责跟踪对象被加锁的次数。如果一个对象被解锁,其计数变为0。在任务(线程)第一次给对象加锁的时候,计数变为1…
lesson3:java的锁机制原理和分析
jdk1.5之前,我们对代码加锁(实际是对象加锁),都是采用Synchronized关键字来处理,jdk1.5及以后的版本中,并发编程大师Doug Lea在concurrrent包中提供了Lock机制。两种机制在性能上目…