java线程释放_Java多线程出现异常会自动释放锁
Java多线程出现异常会自动释放锁
package com.wkcto.intrinsiclock;
/**
* 同步过程中线程出现异常, 会自动释放锁对象
*
* Author: 老崔
*/
public class Test09 {
public static void main(String[] args) {
//先创建Test01对象,通过对象名调用mm()方法
Test09 obj = new Test09();
//一个线程调用m1()方法
new Thread(new Runnable() {
@Override
public void run() {
obj.m1(); //使用的锁对象是Test06.class
}
}).start();
//另一个线程调用sm2()方法
new Thread(new Runnable() {
@Override
public void run() {
Test09.sm2(); //使用的锁对象是Test06.class
}
}).start();
}
//定义方法,打印100行字符串
public void m1(){
//使用当前类的运行时类对象作为锁对象,可以简单的理解为把Test06类的字节码文件作为锁对象
synchronized ( Test09.class ) {
for (int i = 1; i <= 100; i++) {
System.out.println(Thread.currentThread().getName() + " --> " + i);
if ( i == 50){
Integer.parseInt("abc"); //把字符串转换为int类型时,如果字符串不符合 数字格式会产生异常
}
}
}
}
//使用synchronized修饰静态方法,同步静态方法, 默认运行时类Test06.class作为锁对象
public synchronized static void sm2(){
for (int i = 1; i <= 100; i++) {
System.out.println(Thread.currentThread().getName() + " --> " + i);
}
}
}
java线程释放_Java多线程出现异常会自动释放锁相关推荐
- java线程钥匙_Java多线程并发编程/锁的理解
一.前言 最近项目遇到多线程并发的情景(并发抢单&恢复库存并行),代码在正常情况下运行没有什么问题,在高并发压测下会出现:库存超发/总库存与sku库存对不上等各种问题. 在运用了 限流/加锁等 ...
- java线程池_Java多线程并发:线程基本方法+线程池原理+阻塞队列原理技术分享...
线程基本方法有哪些? 线程相关的基本方法有 wait,notify,notifyAll,sleep,join,yield 等. 线程等待(wait) 调用该方法的线程进入 WAITING 状态,只有等 ...
- java 线程由浅入深_Java多线程:由浅入深看synchronized的底层实现原理
Java多线程:由浅入深看synchronized的底层实现原理-1.jpg (91.72 KB, 下载次数: 0) 2018-9-21 03:55 上传 前言 前俩篇文章,我们聊了聊线程/进程的概念 ...
- java 线程 组成_java多线程
一:基本知识点 1.1线程与进程区别: 1.进程是资源分配的最小单位,线程是CPU调度的最小单位 2.一个进程由一个或多个线程组成 3.进程之间相互独立,每个进程都有独立的代码和数据空间,但同一进程下 ...
- java线程 教程_Java多线程系列教程
Java多线程系列教程 多线程是Java中不可避免的一个重要主体.从本章开始,我们将展开对多线程的学习.接下来的内容是对Java多线程内容的讲解,涉及到的内容包括,Object类中的wait(), n ...
- java线程入门_java多线程快速入门(一)
1.什么是进程 比如:QQ.QQ游戏.eclipse都是进程,可以通过任务管理器查看进程 2.进程和线程区别 线程是进程的一部分,一个进程可以包含多个线程,一个线程只能属于一个进程 进程是所有线程的集 ...
- java线程基础_Java多线程基础
前言 在我们工作和学习的过程中,Java线程我们或多或少的都会用到,但是在使用的过程上并不是很顺利,会遇到各种各样的坑,这里我通过讲解Thread类中的核心方法,以求重点掌握以下关键技术点: 线程的启 ...
- java线程设计模式_JAVA多线程设计模式
漫谈UML UML 类图 类和层次结构的关系 接口与实现 聚合 访问控制 类间的关联性 顺序图 处理流程和对象间的协调 时序图 Introduction 1 Java语言的线程 Java语言的线程 何 ...
- java线程 stop()_java 多线程5: java 终止线程及中断机制 (stop()、interrupt() 、interrupted()、isInterrupted())...
JAVA中有3种方式可以终止正在运行的线程 ①线程正常退出,即run()方法执行完毕了 ②使用Thread类中的stop()方法强行终止线程.但stop()方法已经过期了,不推荐使用 ③使用中断机制i ...
最新文章
- 背口诀14天精通c语言pdf下载,C语言必背18个经典程序
- 函数加上简单用户名密码认证
- UVA 11383 Golden Tiger Claw 金虎爪(KM算法)
- 在进行文字自绘时,自动换行打印
- 微信小程序横版日历,tab栏
- 经典高清C语言 The C Programming Language
- 矩形覆盖-----批了外皮的亲蛙跳
- MATLAB simulink 2FSK调制与解调实验,附仿真文件(西电B测)
- macOS 汇编指南
- IT管理员喜欢OpManager的十大原因
- 优秀软件测试工程师必读书籍推荐
- 让你的网站用上炫酷的中文字体
- 帝国PHP二次开发,帝国CMS二次开发基本问题汇总
- js鼠标经过切换图片
- C语言 —— 存储类相关的关键字 (持续更新中....)
- CSS学习笔记 | CSS复合选择器
- 一个清华保送生妈妈对竞赛的感受,自主招生家长都要看看!
- NYOJ-1273-宣传墙
- html游戏手柄,纯CSS3实现的游戏控制手柄
- Linux C/C++ 调试的那些“歪门邪道”
热门文章
- js保存网络图片至本地
- JavaScript:原型设计模式
- Open3d之ubuntu18.04源码编译open3d
- 解决Failed to connect to raw.githubusercontent.com port 443的办法
- 查询结果不跳转页面_商标检索查询的流程步骤是什么?
- 第十三天-企业应用架构模式-对象-关系元数据映射模式
- Unity 图片开启不同选项内存占用
- onCreate onStart onResume onStop onPause onDestroy onRestart onWindowFocusChanged
- Linux命令解释之crontab
- 程序员最常说的那些口头禅