如何设定Excel在线编辑功能,让协作变得更加高效
554
2022-05-30
不久前用到了同步,现在回过头来对JAVA中的同步做个总结,以对前段时间工作的总结和自我技术的条理话。
JAVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。
假如再细的分类,synchronized可作用于
instance变量、
object reference(对象引用)、
static函数、
class literals(类名称字面常量)身上。
在进一步阐述之前,我们需要明确几点:
接着来讨论synchronized用到不同地方对代码产生的影响:
1. 把synchronized当作函数修饰符时,示例代码如下:
Public synchronized void method(){
//….
}
public void method()
{
synchronized (this) // (1)
{
//…..
}
}
2.同步块,示例代码如下:
public void method(SomeObject so) {
synchronized(so)
{
//…..
}
}
class Foo implements Runnable
{
private byte[] lock = new byte[0]; // 特别的instance变量
Public void method()
{
synchronized(lock) { //… }
}
//…..
}
3.将synchronized作用于static 函数,示例代码如下:
Class Foo
{
public synchronized static void method1() // 同步的static 函数
{
//….
}
public void method2()
{
synchronized(Foo.class) // class literal(类名称字面常量)
}
}
小结如下:
更有一些技巧能够让我们对共享资源的同步访问更加安全:
Java 任务调度
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。