锁,同步代码块,同步方法 区别
来源:互联网 发布:乐高电机有哪些端口 编辑:程序博客网 时间:2024/05/17 07:01
锁,同步代码块,同步方法
1、同步代码块
synchronized(锁对象){
需要被锁的代码//线程只有拿到了锁对象,才能执行这里的代码!!!换言之,这里的代码如果执行了,说明该线程拿到了锁对象,其他线程不能拿到该锁对象
}
注意
多个线程必须使用同一个锁对象,要不然锁无效
2、同步方法
public synchronized void show(){} //普通方法的锁是this
public static synchronized void show(){} //静态方法的锁是当前类的字节码文件对象 类名.class
3、注意问题
多个线程必须使用同一个锁对象,要不然锁无效
同步代码块锁可以是任意对象
同步方法的锁是this
静态方法的锁是当前类的字节码文件对象 类名.class
4、什么时候用同步代码块,什么时候用同步方法
尽可能用同步代码块
如果一个方法内的所有代码都被同步代码块包住了,那就用同步方法就可以了
1、同步代码块
synchronized(锁对象){
需要被锁的代码//线程只有拿到了锁对象,才能执行这里的代码!!!换言之,这里的代码如果执行了,说明该线程拿到了锁对象,其他线程不能拿到该锁对象
}
注意
多个线程必须使用同一个锁对象,要不然锁无效
2、同步方法
public synchronized void show(){} //普通方法的锁是this
public static synchronized void show(){} //静态方法的锁是当前类的字节码文件对象 类名.class
3、注意问题
多个线程必须使用同一个锁对象,要不然锁无效
同步代码块锁可以是任意对象
同步方法的锁是this
静态方法的锁是当前类的字节码文件对象 类名.class
4、什么时候用同步代码块,什么时候用同步方法
尽可能用同步代码块
如果一个方法内的所有代码都被同步代码块包住了,那就用同步方法就可以了
0 0
- 锁,同步代码块,同步方法 区别
- 同步代码块,同步代码方法,锁
- 同步代码块、同步方法、锁总结
- 同步代码块,同步方法,同步静态方法,同步非静态方法的区别
- 同步方法与同步代码块的区别?
- java同步方法和同步代码块的区别
- 同步方法与同步代码块的区别
- java同步方法和同步代码块的区别
- java同步代码块和同步方法的区别
- 同步方法和同步代码块的区别是什么
- 多线程---java同步方法和同步代码块的区别
- 同步方法和同步代码块的区别
- java同步方法和同步代码块
- Synchronized 同步方法和同步代码块
- 同步方法和同步代码块
- java同步方法和同步代码块
- 同步方法和同步代码块
- java同步方法和同步代码块
- Android-下拉刷新
- Lua—第9章协同程序
- C# DEV PopupContainerEdit和PopupContainerControll
- Python
- 【数据结构与算法】二叉树给定两个节点的最短距离(C++实现)
- 锁,同步代码块,同步方法 区别
- 采用Lazy方式加载的Fragment
- Visual SVN 服务器源码备份
- 配置hive元数据存储在mysql中
- css行级行内元素横向居中
- HashTable.HashMap.TreeMap三者之间的区别与联系
- 优化软件性能(7)
- 快速原型设计工具-Axure
- 【FAQ】bash VS dash 字符串正则表达式匹配