同步锁效率低的例子
来源:互联网 发布:校园招聘java面试题库 编辑:程序博客网 时间:2024/05/16 10:11
public class TestSync3 implements Runnable {
private int b = 100;
private synchronized void m1() throws InterruptedException { b = 2000;
// Thread.sleep(500);
System.out.println(“m1:” + b);
}
private void m2() { System.out.println("m2:" + b);}public static void main(String[] args) throws InterruptedException { TestSync3 tt = new TestSync3(); Thread t = new Thread(tt); t.start();
// Thread.sleep(100);
tt.m2();
}
@Overridepublic void run() { try { m1(); } catch (InterruptedException e) { e.printStackTrace(); }}
}
结果是:
m2:100
m1:2000
解析:
在两个线程都不“睡眠”(不加sleep)时,加了同步锁(synchronized )的m1方法总是比m2慢,所以m2先于m1得出结果。
因为m1方法加了同步锁,会导致效率低,所以运行起来m1一定在m2后面执行。
阅读全文
0 0
- 同步锁效率低的例子
- 锁的效率很低
- 效率很低的一周
- 效率低的日子怎么办?
- 字符串StringBuilder:jdk1.0,同步安全,但效率低
- 今天效率很低的说
- 为什么说虚函数的效率低
- setpixel,getpixel效率太低的问题
- 效率极低人群的七大习惯
- 一天的学习效率好低
- 虚函数效率低的原因
- 线程同步的例子
- 高内聚,低耦合不错的例子
- 效率太低了
- 今天效率好低
- 入口深, 效率低
- 避免asp的SQL的执行效率低
- 避免asp的SQL的执行效率低
- input标签点击移除默认值
- lambda方法引用总结——烧脑吃透
- leetcode 196. Delete Duplicate Emails
- 每秒百万级高效C++异步日志实践
- Servlet
- 同步锁效率低的例子
- rand()和srand()函数
- android:内存泄露与内存溢出区别、内存泄露定位
- LINUX摄像驱动三:从零开始写虚拟驱动
- Codeforces Round #418 (Div. 2) -- C. An impassioned circulation of affection(DP预处理)
- 从端到云——工业物联网项目全栈快速开发实践
- 清除行列
- 并查集详解 (转)
- unity中使用配置文件进行参数设置