java中的synchronized关键字

原创 2011年01月09日 16:47:00

今天去逛javaworld.com.tw看到有人在问线程同步的问题,最近对多线程很感兴趣,写了不少类似的程序,所以线程同步也是肯定要用的到的,synchronized加在函数名称中间,我记得是对对象的同步,也就是说多线程如果想保持同步,必须保证这些线程用的是一个对象。看到过synchronized写到函数里面的,但是没得感受,今天测试了一把,把synchronized写到函数内部的,就不用保证一个对象了,所有的N个不同对象都可以。这个是代码看下截图吧。

先来个synchronized写到函数内部的

运行结果截图:

可以看到2个线程是同步的来了,

再来看一下关键字写到内部的:

 

 

运行结果是和上面一样的,我就不多截图了。

 

再来对比下,关键字写到函数声明处,但是非一个对象的时候的代码:

 

来看下结果:

可以看到是没有同步的哈。这样已经很清楚了,同步到底杂用的了。。

 

PS:明天开始考试,我什么都不会。。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Java 多线程5:synchronized 关键字用法(修饰类,方法,静态方法,代码块)

在 多线程生成的原因(Java内存模型与i++操作解析) 中,介绍了Java的内存模型,从而可能导致的多线程问题。synchronized就是避免这个问题的解决方法之一。除了 synchronized...

Java——多线程总结、ThreadLocal/Volatile/synchronized/Atomic关键字

当线程被创建并启动之后,它既不是一启动就进入执行状态,也不是一直处于执行状态,在其生命周期中,要经过”新建(New)”、”就绪(Runnable)”、”运行(Running’)”、”阻塞(Blocke...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Java synchronized关键字用法

Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 它修饰的对象有以下几种:  1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用...

java 线程同步:synchronized 关键字

在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized既可以加在一段代码上,也可以加在...

Java多线程(3)——同步与synchronized关键字

线程同步在单线程程序中,每次只做一件事情,后面的事情等待前面的事情完成才进行,但如果使用多线程程序,就会出现多个线程抢占资源的问题,线程的优先级部分地解决了这个问题,但还不够,Java提供线程同步机制...

搞懂java中的synchronized关键字

1、synchronized关键字的作用域有二种:  1) 是某个对象实例内,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对...

java线程同步——条件对象+synchronized 关键字

【0】README0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java线程同步——竞争条件的荔枝+锁对象 的相关知识; 0.2)for full sou...

Java语法-关键字-synchronized

一、同步方法 public synchronized void methodAAA(){ //…. } 锁定的是调用这个同步方法的对象 测试: a、不使用这个关键字修饰方法,两个线程调用同...

Java synchronized关键字学习二

接上一篇博文:  synchronized(非this对象x) 格式的写法是将x对象本身作为“对象监视器”,这样就可以得出如下3个结论:  1)当多个线程同时执行synchronized(x){}...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)