设为首页 加入收藏

TOP

介绍一下Java共享数据的并发处理
2014-11-19 23:16:00 来源: 作者: 【 】 浏览:21
Tags:介绍 Java 共享 数据 并发 处理

两个线程修改共享资源时会出现数据的不一致,为避免这种现象采用对访问的线程做限制的方法。利用每个对象都有一个monitor(锁标记),当线程拥有这个锁标记时才能访问这个资源,没有锁标记便进入锁池。


1.Synchronized修饰代码块


public void push(char c){


synchronized(this){



}


}


对括号内的对象加锁,只有拿到锁标记的对象才能执行该代码块


2.Synchronized修饰方法


public synchronized void push(char c) {



}


对当前对象的加锁,只有拿到锁标记的对象才能执行该方法


注:方法的Synchronized特性本身不会被继承,只能覆盖。


线程因为未拿到锁标记而发生阻塞进入锁池(lock pool)。每个对象都有自己的一个锁池的空间,用于放置等待运行的线程。由系统决定哪个线程拿到锁标记并运行。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇软件工程师 下一篇阿里巴巴面试与金庸

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: