黑马程序员技术交流社区
标题:
Synchronized的用法?
[打印本页]
作者:
王德云
时间:
2011-11-10 21:17
标题:
Synchronized的用法?
Synchronized主要用在线程的同步,还会用在别的地方吗?
Synchronized如果用在方法上,怎么去理解呢?
例如:
class Person {
private String name = "李四";
private String sex = "女";
public synchronized void set(String name, String sex) {
this.name = name;
this.sex = sex;
}
复制代码
作者:
石宗银
时间:
2011-11-10 21:26
用在方法还是线程同步的 应用。。。。多人(即多个线程)来访问,同时操作了该方法,,只能有一人(一个线程)能进入 方法中执行,,
其他的只有等前者执行完,,才能随机有一个进入执行,,再然后 与面类似,,,,,, 这就是同步 互斥 锁 synchronized
作者:
刘一扬
时间:
2011-11-10 21:29
Synchronized 就是表示方法加锁,当某个线程对在方法中没有返回时,不允许其他线程再运行此方法
作者:
郝亚平
时间:
2011-11-10 21:41
Java中开始使用多线程,实在太好了,但是同时也意味着,多线程之间抢占cpu,使得你得去面对多线程引发的潜在安全隐患问题。
Sun公司为了解决这个问题。就引入了Synchronized关键字。同步线程对于共享资源的访问。(此关键字应该就多用在这个用途吧。。好像没其他了。)
其实现机理是采用锁的机制。一旦一个线程进入到线程的代码执行状态,立马就锁上了,别的线程就无法获取到线程代码的
执行权。一旦执行完毕线程代码,就重新打开锁。这样子就保证了各个线程执行线程代码的正常性,也就直接避免了引发错误的安全问题。
线程同步方法时,其实本质就是线程同步代码块的延伸和改进,只是把线程同步代码块单独给提炼出来,到一个独立的方法块中加Synchronized,就成同步方法了 。
代码看上去会更加整洁。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2