synchronized问题

java51601053 2014-09-20 01:56:46
 synchronized 方法的缺陷:若将一个大的方法声明为synchronized 将会大大影响效率,典型地,若将线程类的方法 run() 声明为 synchronized ,由于在线程的整个生命期内它一直在运行,因此将导致它对本类任何 synchronized 方法的调用都永远不会成功。

请问谁能代码解释下,我没搞明白,谢谢了.
...全文
174 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyWalker_ONLY 2014-09-20
  • 打赏
  • 举报
回复
synchronized方法只能被一个线程调用,同时拥有该方法的对象被锁定,这样其他线程调用该对象上的其他synchronized方法就会被阻塞,如果先前的方法运行时间比较长(也就是你说的大),这样其他线程就会一直被阻塞,所以效率低。至于线程的run方法被声明为synchronized方法,其他的synchronized方法将不能被任何线程调用,因为run一直在运行,但可以由自己调用,可以参考http://blog.csdn.net/skywalker_only/article/details/38927919
kingofvc 2014-09-20
  • 打赏
  • 举报
回复
你可以这么想象一下 : 某个高速收费口只有一个窗口, 这个窗口就是被要求同步的对象, 这样,所有车子过来的时候只能等前面一个处理完才能后面的继续前进。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧