多线程同步讲解-synchronized
来源:互联网 发布:华迪实训基地网络设计 编辑:程序博客网 时间:2024/04/30 17:33
多线程同步,首先需要明白的是什么是多线程同步。
所谓的多线程同步,以我的理解,就是多个线程同步的去做一件事事情,用面向对象的说法就是,多个线程操作一个对象的某个方法。
而,多个线程操作多个同一个类的实例并不是多线程同步,而是,每个线程操作每个自己的实例的某个方法。
多线程同步的时候,需要用到synchornized修饰符,synchronized有两种用法
第一种:
修饰一个方法
例如:
public class Person
{
public synchronized void doSomething()
{
//
}
}
那么当多个线程同时操作同一Person的实例的doSomething()方法的时候,那么多个线程就会产生同步问题
synchronized修饰的方法,会个当前对象上锁,这时候,当多个线程执行到doSomething()的时候,先执行到该方法的线程将当前对象上锁,其他线程则不可以对当前对象进行操作
第二种:
synchronized代码块
例如
public void run()
{
synchronized(Object)
{
//同步部分 对Object上锁,同步代码块当多个线程执行到同一个对象的synchornized代码块的时候,先到达的线程对同步代码块赏所,其他线程无法操作。
}
}
推荐使用第二种方法,因为第二种方法控制的更加细粒度化,我们可以只将发生同步的代码放到同步代码块中。而第一种方法,某一时刻,只能由一个线程执行synchornized方法,其他线程不可以访问当前对象的任何synchornized方法。因为此时我们上锁上的是当前对象而不仅仅是当前方法。
- 多线程同步讲解-synchronized
- synchronized多线程同步
- java Synchronized 多线程同步
- 【多线程】synchronized同步块
- 【多线程】synchronized同步方法
- java多线程同步,Synchronized
- 多线程之同步Synchronized
- Java 多线程同步--synchronized
- Java 多线程 synchronized同步
- java多线程同步 synchronized
- 多线程同步 synchronized
- 多线程Synchronized同步
- synchronized多线程同步
- 多线程Thread同步synchronized(加锁)
- 12 多线程同步1(synchronized )
- 12 多线程同步2(synchronized )
- 利用synchronized实现多线程同步
- javaSE 多线程之同步synchronized
- linux下bluetooth编程(四)L2CAP层编程
- 阿里巴巴笔试题2013
- Less (一种动态样式语言)
- lua链接dll的问题
- JAVA将图片转为BASE64编码及反转方法
- 多线程同步讲解-synchronized
- 面向对象 - 设计原则总结(OOD)
- 推荐一个免费在线制作Banner的好地方
- DOM4J解析XML
- 可拖动拉伸的左右分栏效果,本例子是用Table以及JS来实现的,左右分栏可改变,拖动中间的边框就可实现宽度的调整,点击时可设置为隐藏左侧列表。
- 调整check_mk的check时间
- cocos2d-x 菜鸟学习笔记二(自适应屏幕分辨率)
- jedis源码中ShardedJedis实现sharding
- sizeof的用法