首页 > 代码库 > 2016/9/25编写java实验报告时对synchronized(同步代码块)的一些感悟
2016/9/25编写java实验报告时对synchronized(同步代码块)的一些感悟
通过此次实验,明白了多线程的设置和启动、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(同步代码块)的一些感悟
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。