码迷,mamicode.com
首页 > 编程语言 > 详细

2016/9/25编写java实验报告时对synchronized(同步代码块)的一些感悟

时间:2016-09-25 06:07:43      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

通过此次实验,明白了多线程的设置和启动、synchronized代码块的用法、线程的优先级使用方法、知道了那几类资源是线程共享的。

我现在理解的多线程是:实例化一个继承了Thread类或实现了Runnable接口的类(继承是为了使其拥有参与多线程的资格);然后再将该类run()中的代码交由Thread类来执行,以此实现多线程的同步运行

 

经过翻阅网络博客,和代码尝试,进一步的认识了同步代码块:

①synchronized(){}代码块在执行时先判断括号里的对象有没有被上锁:

若无,则上锁并开始执行代码块中的代码

若有,则进入阻塞队列,等待唤醒

②synchronized修饰一个非static函数时,被锁住的对象为 this 即当前引用此函数的对象。

③synchronized修饰一个static函数时,由于static/静态 方法是属于类的,所以被锁住的是当前类,当该静态函数被访问时,所有欲访问该函数的线程都将进入阻塞队列

④synchronized据说可以修饰一个类,

class ClassName {
   public void method() {
      synchronized(ClassName.class) {
         // todo
      }
   }
}

 

但经过实验好像并不能进行互斥访问,应该和泛型有关,应该在近期了解一下泛型部分

 

 

参考来自:http://blog.csdn.net/luoweifu/article/details/46613015

2016/9/25编写java实验报告时对synchronized(同步代码块)的一些感悟

标签:

原文地址:http://www.cnblogs.com/supermanDYC/p/5904772.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!