异常释放锁的情况

    对于web程序,异常的释放锁,很可能意味着程序出现了错误,业务逻辑产生了错误的结果导致了严重的错误,比如:一个队列10个任务,很多对象都会去等待第1个
    队列正常秩序产生的结果返回再次释放锁,那么其中一个发生了异常,导致业务没执行完毕,就释放锁的资源。
  1. package demo1;
  2. /**
  3. *
  4. * Created by liudan on 2017/6/5.
  5. */
  6. public class MyThread5_synchronized2 {
  7. private int i=0;
  8. public synchronized void operation(){
  9. while (true){
  10. try {
  11. i++;
  12. Thread.sleep(200);
  13. System.err.println("∠"+Thread.currentThread().getName().toString()+",->\t"+i);
  14. if (i==8){
  15. Integer.parseInt("a");
  16. //throw new RuntimeException("执行错误");
  17. }
  18. } catch (Exception e) {
  19. e.printStackTrace();
  20. System.err.println("\t\t\t\terror is :"+i);
  21. continue;//应用storm 场景,继续执行,后续手动去操作这个任务
  22. //break; 立即停止执行,并在此处加入一个日志监控
  23. }
  24. }
  25. }
  26. public static void main(String[] args){
  27. final MyThread5_synchronized2 s = new MyThread5_synchronized2();
  28. Thread t = new Thread(new Runnable() {
  29. @Override
  30. public void run() {
  31. s.operation();
  32. }
  33. },"t-1");
  34. t.start();
  35. }
  36. }

转载于:https://www.cnblogs.com/xxt19970908/p/7337138.html

6.异常释放锁的情况相关推荐

  1. Synchronize异常释放锁

    Synchronize异常释放锁 遇到异常的时候,就会释放锁 对象锁,并不会影响后续队列任务的执行 处理队列 Synchronize处理一个队列,多个任务 任务独立 任务之间不会相互影响,此时,可以遇 ...

  2. synchronized 什么时候释放锁

    任何线程进入同步代码块.同步方法之前,必须获得同步监视器的锁定,那么何时会释放这个锁定呢?在程序中,是无法显式释放对同步监视器的锁的,而会在如下几个情况下释放锁. 1.当前线程的同步方法.代码块执行结 ...

  3. java线程释放_Java多线程出现异常会自动释放锁

    Java多线程出现异常会自动释放锁 package com.wkcto.intrinsiclock; /** * 同步过程中线程出现异常, 会自动释放锁对象 * * Author: 老崔 */ pub ...

  4. yield方法释放锁吗_死磕Synchronized底层实现重量级锁

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:farmerjohngit 链接:https://github.com/farmer ...

  5. 存储过程没有执行完后没有释放锁_【大厂面试07期】说一说你对synchronized锁的理解?...

    PS:本文已收录到1.3 K+ Star 数的开源项目-<大厂面试指北>,如果想要了解更多,可以看一看,项目地址如下: https://github.com/NotFound9/inter ...

  6. java中什么是释放已经持有的锁_java多线程什么时候释放锁

    由于等待一个锁定线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线程在不需要锁的时候及时释放锁是很重要的.在以下情况下,持有锁的线程会释放锁: 1.当前线程的同步方法.代码块执行结束的时候释放 ...

  7. thread.sleep会释放锁吗_面试 LockSupport.park()会释放锁资源吗?

    (手机横屏看源码更方便) 引子 大家知道,我最近在招人,今天遇到个同学,他的源码看过一些,然后我就开始了AQS连环问. 我:说说AQS的大致流程? 他:AQS包含一个状态变量,一个同步队列--bala ...

  8. notify()会立刻释放锁么?

    大佬问我: notify()会立刻释放锁么? ​ 我的内心戏: 肯定会啊! 这么简单的问题? image 聪明如我, 决定装小白, 回答: 不会? 大佬: 很好, 小伙子基础不错! 我: image ...

  9. sleep方法的使用,进入sleep状态不释放锁

    Thread类中的静态方法sleep(),当一个执行中的线程调用了Thread的sleep()方法后,调用线程会暂时让出时间的执行权,这期间不参与cpu的调度,但是该线程持有的锁是不让出的.时间到了会 ...

最新文章

  1. APACHE2 修改HTTPD.CONF 后启动错误
  2. Oracle数据库监听配置|转|
  3. 中山市区电信5g覆盖地图_5G信号到底有多“垃圾”
  4. linux 下qt 终端隐藏在后台_20 个 Linux 终端下的生产力工具 | Linux 中国
  5. pucch的uci格式_LTE规范中关于DCI/PDCCH以及UCI/PUCCH写的比较模糊?
  6. python queue的用法_PYTHON多进程用法之四(Queue)
  7. 迅雷mac版精简安装教程
  8. 如何缩小jpg图片大小kb?手机照片怎么压缩大小?
  9. Akka-CQRS(4)- CQRS Writer Actor 示范
  10. pikachu靶场打靶分析
  11. cad解除块的快捷命令_cad隐藏块快捷键是什么,Auto CAD隐藏块快捷键是什么?
  12. iOS10 关于推送
  13. 文献找不到有什么好办法,运用谷粉学术和sci-hub下载各种文献
  14. WEB安全 HTML基础
  15. Google Play评论抓取
  16. 域控中同一计算机名字,更改域控的计算机名
  17. 实验1 OpenGL初识
  18. Qt编写可视化大屏电子看板系统7-窗体浮动
  19. web后端--Django学习笔记04
  20. 懈寄生---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十四)[转]...

热门文章

  1. liferay 如何 用 国际化
  2. php免登录接口,PHPWind 8.0 论坛免登陆发布接口发布
  3. API数据安全知多少【知识篇】
  4. 干货|各种WAF绕过手法学习
  5. java验证生日的正则表达式
  6. pthread_once()函数详解
  7. python根据2点经纬度计算距离
  8. GitHub for windows使用教程(三) 团队协作流程
  9. 工业界推荐系统实用分析技巧
  10. 03、CustomRegions