您的位置:首页 > 编程语言 > Java开发

java,synchronized方法

2014-08-29 10:36 89 查看
java为防止资源冲突而提供了synchronized关键字支持,当任务要执行被synchronized关键字修饰的代码片段时,先检查锁是否可用,然后获取锁,执行代码,释放锁。

package com.zhiru;

class RwThread implements Runnable{

public synchronized void f(){
for(int i=1;i<=5;i++)
System.out.println("loop "+i);
}
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(Thread.currentThread().getName()+"start...");
f();
}

}
public class ThreadSync {

public static void main(String[] args) {
// TODO Auto-generated method stub
Runnable t=new RwThread();
Thread t1=new Thread(t,"t1");
Thread t2=new Thread(t,"t2");
t1.start();
t2.start();

}

}


若方法f未被synchronized关键字修饰结果如下:
t2start...

t1start...

loop 1

loop 1

loop 2

loop 2

loop 3

loop 3

loop 4

loop 4

loop 5

loop 5

加上synchronized关键字:

t2start...

t1start...

loop 1

loop 2

loop 3

loop 4

loop 5

loop 1

loop 2

loop 3

loop 4

loop 5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐