Java多线程中使用ReentrantLock、synchronized加锁 简单举例
public class Demo {final static Lock lock = new ReentrantLock();public static void test(Long userId) throws InterruptedException {System.out.println("------线程开始进入-----" + new Date());lock.lock();try {System.err.println("打印..." + new Date());Thread.sleep(5000);} catch (Exception e) {}finally {lock.unlock();    //必须在finally中解锁
        }}public static void test2(Long userId) throws InterruptedException {System.out.println("------线程开始进入-----" + new Date());synchronized (String.valueOf(userId).intern()) {System.err.println("打印..." + new Date());Thread.sleep(5000);}}public static void main(String[] srrt) {for(int i = 0;i < 3;i++) {new Thread(new Runnable() {@Overridepublic void run() {try {test2(1234L);} catch (InterruptedException e) {e.printStackTrace();}}}).start();}}
}

1、ReentrantLock支持对异常的处理。

2、synchronized不支持对异常的处理,但支持对特定的某一对象值加锁。

posted on 2019-05-09 09:47 三天打鱼,两天晒网 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/yanketao/p/10836722.html

Java多线程中使用ReentrantLock、synchronized加锁 简单举例相关推荐

  1. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

  2. java多线程同步与死锁_浅析Java多线程中的同步和死锁

    Value Engineering 1基于Java的多线程 多线程是实现并发机制的一种有效手段,它允许编程语言在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间相互独立,且与进程一样拥有独立 ...

  3. java 多线程的单例模式,Java多线程中的单例模式两种实现方式

    Java多线程中的单例模式 一.在多线程环境下创建单例 方式一: package com.ietree.multithread.sync; public class Singletion { priv ...

  4. Java多线程中static变量的使用

    Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果? Java中 没处理好同步 导致两个线程同时为一个static变量赋值 会导致什么后果?仅仅是多耗资源还是会引发异 ...

  5. Java多线程中的ThreadLocal,可继承,可修改

    Java多线程中的ThreadLocal,可继承,可修改. package test;import java.util.Date;public class InheritableThreadLocal ...

  6. java多线程中的死锁、活锁、饥饿、无锁都是什么鬼?

    转载自 java多线程中的死锁.活锁.饥饿.无锁都是什么鬼? 死锁.活锁.饥饿是关于多线程是否活跃出现的运行阻塞障碍问题,如果线程出现了这三种情况,即线程不再活跃,不能再正常地执行下去了. 死锁 死锁 ...

  7. Java多线程,锁(CAS,synchronized,AQS,ReentrantLock)

    该博客只是个人学习的笔记.如果有什么疑问或者有什么不对的都可以告诉我,目前只写了多线程和锁的部分,因为只是个人学习记录的笔记,所以写的不是很详细,里面有一些个人的见解思考供各位参考. 一.多线程 关于 ...

  8. java多线程中 锁 的概念的理解,java 并发多线程显式锁概念简介 什么是显式锁 多线程下篇(一)...

    目前对于同步,仅仅介绍了一个关键字synchronized,可以用于保证线程同步的原子性.可见性.有序性 对于synchronized关键字,对于静态方法默认是以该类的class对象作为锁,对于实例方 ...

  9. java多线程系列(四)---ReentrantLock的使用

    Lock的使用 前言:本系列将从零开始讲解java多线程相关的技术,内容参考于<java多线程核心技术>与<java并发编程实战>等相关资料,希望站在巨人的肩膀上,再通过我的理 ...

最新文章

  1. Elam的git笔记:(二)git的安装与基本操作介绍
  2. catch and batch
  3. skimage.io.imread vs caffe.io.load_image
  4. centos6.2安装桌面环境 与中文支持
  5. 叉乘点乘混合运算公式_初中数学学不会?公式这样记,让你做题效率翻倍!
  6. oracle 11g 在RedHat ES4 下面安装缺少的RPM
  7. vb net excel 剪贴板 粘贴_12-2-Excel快速编辑行列的10条经验
  8. mysql中blog数据_zp blog
  9. 为什么说这 5 大趋势,开发者不容错过?
  10. JVM中的垃圾收集算法
  11. 【ROM定制】Fastboot Enhance —— 适合人类使用的Fastboot + Payload.bin 解包工具箱
  12. 股票投资的基本面量化
  13. matlab不定积分曲线族画图,matlab不定积分
  14. 对网上一些Java笔试题的总结,答案与自我理解(400道)
  15. 【渝粤教育】电大中专中成药 (2)作业 题库
  16. gitlab中组的分类及权限介绍
  17. Receptive Field Block Net 论文阅读
  18. Ice飞冰页面配置菜单配置日志打印环境配置《六》
  19. Mybatis (总结完整)
  20. 马云的顿悟:阿里巴巴在维基经济学中成长

热门文章

  1. mysql 只读账号_MySql主从复制,从原理到实践!
  2. kafka可视化工具_Kafka值得一用的监控系统
  3. (1) ebj学习:基本概念
  4. JS判断 浏览器 是否禁用Cookie
  5. kubernetes目录挂载
  6. ngx_lua模块API说明
  7. K-means算法详解及python代码实现
  8. python3爬虫初探(一)之urllib.request
  9. 机器学习实战:使用lightGBM预测饭店流量
  10. javaweb学习总结(二十三):jsp自定义标签开发入门