6.异常释放锁的情况
异常释放锁的情况
对于web程序,异常的释放锁,很可能意味着程序出现了错误,业务逻辑产生了错误的结果导致了严重的错误,比如:一个队列10个任务,很多对象都会去等待第1个
队列正常秩序产生的结果返回再次释放锁,那么其中一个发生了异常,导致业务没执行完毕,就释放锁的资源。
package demo1;
/**
*
* Created by liudan on 2017/6/5.
*/
public class MyThread5_synchronized2 {
private int i=0;
public synchronized void operation(){
while (true){
try {
i++;
Thread.sleep(200);
System.err.println("∠"+Thread.currentThread().getName().toString()+",->\t"+i);
if (i==8){
Integer.parseInt("a");
//throw new RuntimeException("执行错误");
}
} catch (Exception e) {
e.printStackTrace();
System.err.println("\t\t\t\terror is :"+i);
continue;//应用storm 场景,继续执行,后续手动去操作这个任务
//break; 立即停止执行,并在此处加入一个日志监控
}
}
}
public static void main(String[] args){
final MyThread5_synchronized2 s = new MyThread5_synchronized2();
Thread t = new Thread(new Runnable() {
@Override
public void run() {
s.operation();
}
},"t-1");
t.start();
}
}
转载于:https://www.cnblogs.com/xxt19970908/p/7337138.html
6.异常释放锁的情况相关推荐
- Synchronize异常释放锁
Synchronize异常释放锁 遇到异常的时候,就会释放锁 对象锁,并不会影响后续队列任务的执行 处理队列 Synchronize处理一个队列,多个任务 任务独立 任务之间不会相互影响,此时,可以遇 ...
- synchronized 什么时候释放锁
任何线程进入同步代码块.同步方法之前,必须获得同步监视器的锁定,那么何时会释放这个锁定呢?在程序中,是无法显式释放对同步监视器的锁的,而会在如下几个情况下释放锁. 1.当前线程的同步方法.代码块执行结 ...
- java线程释放_Java多线程出现异常会自动释放锁
Java多线程出现异常会自动释放锁 package com.wkcto.intrinsiclock; /** * 同步过程中线程出现异常, 会自动释放锁对象 * * Author: 老崔 */ pub ...
- yield方法释放锁吗_死磕Synchronized底层实现重量级锁
点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:farmerjohngit 链接:https://github.com/farmer ...
- 存储过程没有执行完后没有释放锁_【大厂面试07期】说一说你对synchronized锁的理解?...
PS:本文已收录到1.3 K+ Star 数的开源项目-<大厂面试指北>,如果想要了解更多,可以看一看,项目地址如下: https://github.com/NotFound9/inter ...
- java中什么是释放已经持有的锁_java多线程什么时候释放锁
由于等待一个锁定线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线程在不需要锁的时候及时释放锁是很重要的.在以下情况下,持有锁的线程会释放锁: 1.当前线程的同步方法.代码块执行结束的时候释放 ...
- thread.sleep会释放锁吗_面试 LockSupport.park()会释放锁资源吗?
(手机横屏看源码更方便) 引子 大家知道,我最近在招人,今天遇到个同学,他的源码看过一些,然后我就开始了AQS连环问. 我:说说AQS的大致流程? 他:AQS包含一个状态变量,一个同步队列--bala ...
- notify()会立刻释放锁么?
大佬问我: notify()会立刻释放锁么? 我的内心戏: 肯定会啊! 这么简单的问题? image 聪明如我, 决定装小白, 回答: 不会? 大佬: 很好, 小伙子基础不错! 我: image ...
- sleep方法的使用,进入sleep状态不释放锁
Thread类中的静态方法sleep(),当一个执行中的线程调用了Thread的sleep()方法后,调用线程会暂时让出时间的执行权,这期间不参与cpu的调度,但是该线程持有的锁是不让出的.时间到了会 ...
最新文章
- APACHE2 修改HTTPD.CONF 后启动错误
- Oracle数据库监听配置|转|
- 中山市区电信5g覆盖地图_5G信号到底有多“垃圾”
- linux 下qt 终端隐藏在后台_20 个 Linux 终端下的生产力工具 | Linux 中国
- pucch的uci格式_LTE规范中关于DCI/PDCCH以及UCI/PUCCH写的比较模糊?
- python queue的用法_PYTHON多进程用法之四(Queue)
- 迅雷mac版精简安装教程
- 如何缩小jpg图片大小kb?手机照片怎么压缩大小?
- Akka-CQRS(4)- CQRS Writer Actor 示范
- pikachu靶场打靶分析
- cad解除块的快捷命令_cad隐藏块快捷键是什么,Auto CAD隐藏块快捷键是什么?
- iOS10 关于推送
- 文献找不到有什么好办法,运用谷粉学术和sci-hub下载各种文献
- WEB安全 HTML基础
- Google Play评论抓取
- 域控中同一计算机名字,更改域控的计算机名
- 实验1 OpenGL初识
- Qt编写可视化大屏电子看板系统7-窗体浮动
- web后端--Django学习笔记04
- 懈寄生---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十四)[转]...