位置:首页 > 软件操作教程 > 编程开发 > Java > 问题详情

Java 同步代码块

提问人:刘旭39发布时间:2020-11-30

同步代码块

Java中使用synchronized关键字来声明同步代码块,也就是所谓的“锁”,它可以有效地防止多 个线程同时访问同一个代码块而造成的冲突。synchrcmized定义代码块格式如下:

synchronized(Object) {

//代码块

}

共享代码块通常放在synchronized定义的区域内,当线程访问这个代码块时,首先会检测这个 代码块是否被其他线程“锁住”了,如果已被“锁住”,则直到其他线程使用完,锁被释放了, 这个代码块才可以继续被访问。Ohject类会标识出这个对象是否被锁,与这个类相关联的线程可以 互斥地使用该类对象的锁。下面看一个使用synchmnizwl关键字声明同步代码块的示例。

//线程安全

public class ThreadSafe implements Runnable { 

private Integer key = 0;

@Override

public void run() { 

synchronized (key){

key++;

System.out.println(((Thread) Thread.current()).getName()+":"+ key);

try {

Thread.sleep(100);

} catch (InterruptedException e) {

}

}

}

public static void main(String[] args) {

ThreadSafe threadSafe = new ThreadSafe(); 

for(int i=0; i<10; i++) {

new Thread(threadSafe, "线程"+ i).start();

}

}

}


继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部