java中的synchronized关键字

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

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

先来个synchronized写到函数内部的

运行结果截图:

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

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

 

 

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

 

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

 

来看下结果:

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

 

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

相关文章推荐

Java并发编程---synchronized关键字

  • 2016年10月30日 16:26
  • 431KB
  • 下载

Java语言的关键字——synchronized

简介:Java语言的关键字,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这个段代码。当两个并发线程访问同一个对象object中的这个加锁同步代码...

java多线程(四)synchronized关键字修饰方法

在之前的博客中我们介绍了条件对象和锁对象,两者结合使用才能起到比较好的互斥与同步效果,大家可能觉得有些麻烦,有没有将两者结合起来的工具呢,有!java提供了synchronized关键字来实现线程的互...

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

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

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

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

Java synchronized关键字用法

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

java 线程同步:synchronized 关键字

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

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

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

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

【0】README0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java线程同步——竞争条件的荔枝+锁对象 的相关知识; 0.2)for full sou...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中的synchronized关键字
举报原因:
原因补充:

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