public class TestDeadLock implements Runnable{ public int flag = 1; static Object o1 = new Object(), o2 = new …
分类:java并发
分布式锁实现方案1、基于Redis的SETNX操作实现的分布式锁
很多前辈们都写过类似的伪代码,但是前辈们都没有告诉你,redis分布式事务锁无论如何写都会存在一些问题(代码注释会给你揭晓),所以一定要活学活用(结合业务场景合理设置超时时间) 下面给出了一个相当来说实现算是完美一些(为…
java多线程开发juc第一章:volatile内存可见性
当两个线程(线程A、线程B)操作共享数据时,共享数据存在于主存中,JVM会对线程A和线程B分配独立的内存,所以彼此的内存是不可见的,从而存在内存可见性问题。 如:线程A要对共享数据进行修改,线程B要对共享数据进行读取,当…
java并发工具学习 02 线程对象(Thread Object)那些事
每个线程都跟一个Thread实例关联。有两种建立线程的基础策略。+实例化一个Thread实例,程序异步新建一个线程执行任务(方便直接控制线程的创建和管理)+传送任务给执行器(executor)执行(从应用的其他部分抽象化…
MyBatis3: There is no getter for property named 'code' in 'class java.lang.String'
mybatis3 : mysql文如下,传入参数为string类型时‘preCode’,运行报错为:There is no getter for property named ‘preC…
java 多线程(ThreadPoolExecutor)
ThreadPoolExecutor是常用的java线程池实现,之前的项目中也一直有用到,本文记录两个基本的例子和参数设置。 例子1: public class Thread1 { public void ThreadO…
Java并发基础总结
并发是一种能并行运行多个程序或并行运行一个程序中多个部分的能力。如果程序中一个耗时的任务能以异步或并行的方式运行,那么整个程序的吞吐量和可 交互性将大大改善。现代的PC都有多个CPU或一个CPU中有多个核,是否能合理…
Java面试题解构
有次一个同事让我一同去面试一个候选人,没仔细看简历,所以在问了设计模式之后就让他谈一谈对内存泄漏和垃圾回收的理解,当时候选人一下子就懵了。后来才知道,他面的是初、中级开发职位,想来估计候选人心里也在骂我吧。 我自己用过各…
java并发学习02---ReadWriteLock 读写锁
同步器–读写锁 java并发包中帮我们进行了一系列的封装,之前的重入锁需要我们手动的加锁和释放锁,而同步器只需要我们简单的去使用就可以了。 之前我们无论是使用synchronized还是ReentrantLo…
使用ZooKeeper实现Java跨JVM的分布式锁
一、使用ZooKeeper实现Java跨JVM的分布式锁 二、使用ZooKeeper实现Java跨JVM的分布式锁(优化构思) 三、使用ZooKeeper实现Java跨JVM的分布式锁(读写锁) 说明:本文…
从头认识java-17.4 具体解释同步(3)-对象锁
这一章节我们接着上一章节的问题,给出一个解决方式:对象锁。 1.什么是对象锁? 对象锁是指Java为临界区synchronized(Object)语句指定的对象进行加锁,对象锁是独占排他锁。 2.什么是临界区? 临界区是…
Java之ReentrantLock公平锁和非公平锁
在Java的ReentrantLock构造函数中提供了两种锁:创建公平锁和非公平锁(默认)。代码如下: public ReentrantLock() { sync = new Non…