package seday10;
/**
* @author xingsir
* 静态方法若使用synchronized修饰,这个方法一定具有同步效果。静态方法上使用的同步监视器对象为这个类的"类对象",
* 每个java定义的类都只有唯一的一个类对象(Class类型的的实 例)
*/
public class syncDemo3 {

public static void main(String[] args) {
Thread t1 =new Thread() {
public void run() {
Class1.method();//静态类,直接用类名调用方法
}
};
Thread t2 = new Thread() {
public void run() {
Class1.method();//静态类,直接用类名调用方法
}
};
t1.start();//启动
t2.start();//启动
}

}
class Class1{
/*
* 两种方法:
* 1.直接加在方法名前面 public synchronized static void dosome(){}
*/
public synchronized static void method() {
/*
* 2.静态方法中若使用同步监视器对象,也可以使用 当前类的类对象,获取当前类的类对象可以直接
通过:类名.class得到。如下:synchronized (Foo.class) {}
*/
// synchronized (Foo.class) {
try {
Thread thread =Thread.currentThread();
System.out.println(thread.getName()+":正在执行method...");
Thread.sleep(5000);
System.out.println(thread.getName()+":执行method完毕!");
} catch (Exception e) {
e.printStackTrace();

}
// }
}
}

静态方法使用synchronized修饰.的更多相关文章

  1. 关于java线程锁synchronized修饰普通方法与静态方法的区别

    最近研究线程方面问题,关于这个synchronized锁修饰的问题,先是修饰普通方法,然后通过两个线程,各自执行自己对象的锁,发现方法执行互不影响,代码如下: private static int n ...

  2. synchronized修饰普通方法和静态方法

    首先,要知道,synchronized关键字修饰普通方法时,获得的锁是对象锁,也就是this.而修饰静态方法时,锁是类锁,也就是类名.class. synchronized修饰普通方法 Synchro ...

  3. 使用synchronized修饰静态方法和非静态方法有什么区别

    前言 最近被问到了这个问题,第一次回答的也是很不好,在此参考网上答案进行整理记录.供大家学习参考. Synchronized修饰非静态方法 Synchronized修饰非静态方法,实际上是对调用该方法 ...

  4. synchronized修饰static方法与非static方法的区别

    1. 当synchronized修饰一个static方法时,多线程下,获取的是类锁(即Class本身,注意:不是实例),作用范围是整个静态方法,作用的对象是这个类的所有对象. 2. 当synchron ...

  5. 类锁和对象锁,synchronized修饰static方法与非static方法的区别

    当synchronized修饰一个static方法时,多线程下,获取的是类锁(即Class本身,注意:不是实例), 作用范围是整个静态方法,作用的对象是这个类的所有对象. 当synchronized修 ...

  6. 一张图讲解对象锁和关键字synchronized修饰方法

    每个对象在出生的时候就有一把钥匙(监视器),那么被synchronized 修饰的方法相当于给方法加了一个锁,这个方法就可以进行同步,在多线程的时候,不会出现线程安全问题. 下面通过一张图片进行讲解: ...

  7. JAVA 同步之 synchronized 修饰方法

    在JAVA多线程编程中,将需要并发执行的代码放在Thread类的run方法里面,然后创建多个Thread类的对象,调用start()方法,线程启动执行. 当某段代码需要互斥时,可以用 synchron ...

  8. synchronized修饰方法和对象的区别

    使用synchronized(object) { 代码块.... } 能对代码块进行加锁,不允许其他线程访问,其的作用原理是:在object内有一个变量,当有线程进入时,判断是否为0,如果为0,表示可 ...

  9. synchronized修饰的方法之间相互调用

    1:synchronized修饰的方法之间相互调用,执行结果为There hello  ..因为两个方法(main,hello)的synchronized形成了互斥锁.  所以当main方法执行完之后 ...

随机推荐

  1. Docker造化钟神秀

    之前闲暇之余有玩过一哈Dokcer容器,但是日子挺久了,然后挺多东西就忘记了,趁着今天有时间重拾一下docker的相关知识. 搜索下载镜像 docker search ubuntu docker pu ...

  2. contos7 用户管理相关操作命令

    # 查看用户列表 cut -d : -f 1 /etc/passwd # 查看可以登录系统的用户 cat /etc/passwd | grep -v /sbin/nologin | cut -d : ...

  3. 一直报找不到function,然后又不为null。最后发现是个数组。哭死。

    今天写代码,报找不到function.然后又不为空.最后发现是类型不对.因为是数组,所以不能用node.function(),而应该用nodeArr[0].function.错用前者会找不到funct ...

  4. 野路子码农(5)Python中的装饰器,可能是最通俗的解说

    装饰器这个名词一听就充满了高级感,而且很多情况下确实也不常用.但装饰器有装饰器的好处,至少了解这个对装逼还是颇有益处的.网上有很多关于装饰器的解说,但通常都太过“循序渐进”,有的还会讲一些“闭包”之类 ...

  5. Django学习笔记4

    Referto https://docs.djangoproject.com/zh-hans/2.2/intro/tutorial04/ Since we have the abstract conc ...

  6. python面试的100题(12)

    25.求出列表所有奇数并构造新列表 a=[1,2,3,4,5,6,7,8,9,10] res=[i for i in a if i%2==1] print(res) 结果为:[1, 3, 5, 7, ...

  7. 使用shader,矩阵旋转实现图片的旋转动画

    常用于loading动画之类的 具体的实现代码: fixed4 frag (v2f i) : SV_Target { //1.先将uv平移到原点(让图片中心与原点重合) float2 pianyi=( ...

  8. python算术

    ''' 1.对每个数进行平方, 2.求和 ''' print(sum(x ** 2 for x in range(4)))

  9. maven构建错误 RSA premaster secret error: SunTls12RsaPremasterSecret KeyGenerator not available

    转载地址:https://blog.csdn.net/daydayuptiantian/article/details/78763035 错误信息前面显示的是:Failed to execute go ...

  10. SQL With As的用法

    WITH AS,也叫子查询部分(subquery factoring),可以定义一个SQL片断,该SQL片断会被整个SQL语句用到.可以使SQL语句的可读性更高,也可以在UNION ALL的不同部分, ...