对象锁的同步与异步
来源:互联网 发布:奥特曼皮套购买淘宝 编辑:程序博客网 时间:2024/05/19 18:41
同步:synchronized
同步的概念就是共享,我们要牢记“共享”,如果不是共享资源就没有必要进行同步。
异步:aynchronized
异步的概念就是独立,相互之间没有制约。
同步的目的就是为了线程安全,线程安全需要满足两个特性:
原子性
可见性
示例:
package com.线程间通信;
public class MutiThread2 {
public synchronized void method1() throws InterruptedException{
System.out.println(Thread.currentThread().getName());
Thread.sleep(4000);
}
//synchronized
public void method2(){
System.out.println(Thread.currentThread().getName());
}
public static void main(String[] args) {
final MutiThread2 obj = new MutiThread2();
Thread t1 = new Thread(new Runnable() {
public void run() {
try {
obj.method1();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}, "t1");
Thread t2 = new Thread(new Runnable() {
public void run() {
obj.method2();
}
}, "t2");
t1.start();
t2.start();
}
}
解释代码:
在method2前面不加synchronized关键字,说明两个线程t1和t2之间是无关的,是异步的。
加上synchronized关键字后,则t1线程和t2线程是共享一个obj锁对象的,当t1线程获取obj
对象时,t2线程只能等待,是同步的。t1和t2线程是共享了obj对象。
- 对象锁的同步与异步
- Java多线程基础之对象锁的同步与异步
- 对象锁的同步和异步
- 线程-对象锁的同步和异步
- 1.3 对象锁的同步和异步
- 对象锁的同步和异步问题
- 同步锁与异步锁的区别
- 同步与异步的概念
- DWR的同步与异步
- 同步与异步的理解
- 同步与异步的区别
- 线程的同步与异步
- 同步与异步的区别
- 同步与异步的区别
- 同步与异步的区别
- 异步与同步的理解
- 同步与异步的区别
- 异步与同步的区别
- 银行ATM系统 OOAD
- post和get方法的区别
- Theme
- 梆定变量的长度不一致也可能会造成硬解析
- 京东2017实习校招笔试题目-异或实现
- 对象锁的同步与异步
- 设计模式_模版设计模式概述和使用
- 用ldd -r, c++filt, nm搞定一个so库缺符号的问题
- 5.参数传递
- AppTheme属性设置集合
- WebService应用以及jdk如何应用
- Linux之内存管理mm_struct
- socket实现http协议
- Undefined symbols for architecture i386: "register_all_MyClass(lua_State*)"