synchronized关键字的实例解析
来源:互联网 发布:灯光计算软件 编辑:程序博客网 时间:2024/06/16 06:15
synchronized 关键字
它包括两种用法:synchronized 方法和 synchronized 块。
synchoronized产生的锁是对象的锁,对于两个对象,他们之间是不同步的。
////////////////////////////////////////////////////////////////////////////////////
package hehe;
public class ExampleThread extends Thread {
private String threadName;
public ExampleThread(String name){
this.threadName=name;
}
public void run() {
// TODO Auto-generated method stub
System.out.println(this.threadName);
fun1();
fun2();
}
public synchronized void fun1(){
System.out.println("fun1");
try {
this.sleep(10000000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public synchronized void fun2(){
System.out.println("fun2");
}
private String threadName;
public ExampleThread(String name){
this.threadName=name;
}
public void run() {
// TODO Auto-generated method stub
System.out.println(this.threadName);
fun1();
fun2();
}
public synchronized void fun1(){
System.out.println("fun1");
try {
this.sleep(10000000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public synchronized void fun2(){
System.out.println("fun2");
}
}
///////////////////////////////////////////////////////////////////////////////////////
package hehe;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ExampleThread thread1=new ExampleThread("thread1");
ExampleThread thread2=new ExampleThread("thread2");
thread1.start();
thread1.run();
//thread2.start();
}
}
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ExampleThread thread1=new ExampleThread("thread1");
ExampleThread thread2=new ExampleThread("thread2");
thread1.start();
thread1.run();
//thread2.start();
}
}
////////////////////////The Result is//////////////////////////////////////////
thread1
thread1
fun1
thread1
fun1
因为thread1对象在fun1()中sleep了,所以占用了这个锁,所以第二次调用run()时,进入不了fun1()函数。
- synchronized关键字的实例解析
- synchronized关键字实例解析
- Java的synchronized关键字解析
- Java 关键字synchronized解析
- synchronized关键字解析
- Java 关键字synchronized解析
- Synchronized关键字解析
- java的synchronized关键字
- synchronized关键字的使用
- Java的关键字synchronized
- Synchronized 关键字的理解
- synchronized关键字的使用 .
- synchronized关键字的用法
- synchronized 关键字的使用
- synchronized 关键字的使用
- synchronized关键字的用法
- synchronized 关键字的体验
- synchronized关键字的理解
- A simple Echo Server
- Linux学习高手写给初学者的话
- 关于类的静态初始化块和类的初始化块
- java vs .net
- java中的关键字
- synchronized关键字的实例解析
- codesmith模板基本知识
- ASP.NET页面刷新方法总结(资料)
- Daemon线程与普通线程的区别
- ASP.NET页面的CheckBoxList组件(资料)
- ASP.NET的五大数据控件浅谈(资料)
- 游标管理
- 浅析ASP.NET生成随机密码(资料)
- 一个简单的后台管理(Html)