synchronized关键字的使用 .
来源:互联网 发布:悟空传说网络不大好 编辑:程序博客网 时间:2024/05/19 17:05
一、结论
1.synchronized可以用于一个类的方法,如public synchronized void writeA,那么同步代码锁定的对象将是当前实例对象,任何现成访问该实例对象的其他同步方法将必须等待,直到方法writeA执行完成
2.synchronized 也可以作用于一个代码块,如synchronized(this){}
3.synchronized 还可以同步一个对象,如synchronized(object){}
二、示例代码
1.TestSynchronize类的代码(测试同步的对象代码)
/**
*
*/
package com.my.test.sychronize;
/**
* 同步类,测试同步的对象代码
*
* @author rey2008
*
*/
public class TestSynchronize {
// 单例对象
static TestSynchronize m_instance = new TestSynchronize();
/**
* 返回单例对象
*
* @return
*/
public static TestSynchronize getInstance() {
return m_instance;
}
public synchronized void writeA(String _FlagThread) {
// 假如执行时间是5秒
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("ThreadFlag:::" + _FlagThread);
}
public synchronized void writeB() {
System.out.println("bbbbbbbbbbbb");
}
}
2.TestSynchronizeMain类的代码(测试同步的方法入口)
package com.my.test.sychronize;
public class TestSynchronizeMain {
public static void main(String[] args) {
// 线程1
Thread thread1 = new Thread() {
public void run() {
// 执行方法
System.out.println("线程1准备执行writeA...");
TestSynchronize.getInstance().writeA("aa");
System.out.println("线程1的writeA执行成功...");
}
};
// 线程2
Thread thread2 = new Thread() {
public void run() {
// 执行方法
System.out.println("线程2准备执行writeB...");
TestSynchronize.getInstance().writeB();
System.out.println("线程2的writeB执行成功...");
}
};
// 执行线程
thread1.start();
thread2.start();
}
}
3.打印结果
线程1准备执行writeA...
线程2准备执行writeA...(由于线程1的writeA方法sleep了5秒,所以WriteB必须要等待WriteA执行完成才能够继续执行,虽然线程2没有sleep代码,但是writeB方法还是会在writeA方法执行成功后才输出调试信息)
ThreadFlag:::aa
线程1的writeA执行成功...
bbbbbbbbbbbb
线程2的writeA执行成功..
备注:
更多关于sychronize可以参考http://zhidao.baidu.com/question/84980331.html&__bd_tkn__=7aaa422570318a2a5205a93b8da52cb0c01695eb8078338d51fed8133ea5c69d362ad36bb4bcda3b39bb3949f6bbe47087ac3af56e60b1f4e7eb60157058f43a9d64aaf940491fc7006f450add3acb0a4f72ed730c5ec88edb39347575284729ca620d354eb2d9dc9a7beabbc9db810fc23c22f24f
- synchronized关键字的使用
- synchronized关键字的使用 .
- synchronized 关键字的使用
- synchronized 关键字的使用
- Synchronized关键字的使用
- synchronized关键字的使用
- Synchronized 关键字的使用
- Java Synchronized关键字的使用
- synchronized关键字的详细使用
- 同步线程的synchronized关键字的使用
- 黑马程序员-synchronized关键字的使用总结
- java线程以及synchronized关键字的使用
- java_Thread中synchronized关键字的使用
- Java多线程同步 synchronized 关键字的使用
- Java中synchronized关键字的使用
- java 使用synchronized关键字锁定的对象
- JAVA 线程中的synchronized关键字的使用
- 同步锁synchronized 关键字的使用效果
- UVA 11234 - Expressions
- 工作学习笔记——9月
- POJ 2901——Hotel
- HDU 4419 Colourful Rectangle(12年杭州 线段树+离散化+扫描线)
- 不知所措失眠的一天
- synchronized关键字的使用 .
- Python--raw_input()函数
- 机试:求一个二进制数中0的个数
- 在Word2007中显示文档结构图的步骤如下所述:
- C++中虚析构函数的作用
- android上通过反射,获取存储器列表
- 单元测试小结
- DFSORT之shift right
- 常用正则表达式