没有合适的资源?快使用搜索试试~ 我知道了~
wuxinrenfeng#JavaLeaning#线程的同步1
需积分: 0 0 下载量 97 浏览量
2022-07-25
14:35:05
上传
评论
收藏 6KB MD 举报
温馨提示
试读
线程的同步(*)同步Java 引入了对象++互斥锁++的概念,来保证共享数据操作的完整性++每个对象++都对应一个 monitor(监视器),它上面一个称为“互
资源推荐
资源详情
资源评论
### 线程的同步(*)
#### 同步
* Java 引入了对象++互斥锁++的概念,来保证共享数据操作的完整性
* ++每个对象++都对应一个 **monitor(监视器)**,它上面一个称为“**互斥锁(lock,mutax)**“的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象
* 关键字 synchronized 用来与对象的互斥锁联系
#### synchronized
* **synchronized** 的用法
* 对代码片断
`synchronized(对象){...}`
* 对某个方法
**synchronized** 放在方法声明中
`public synchronized void push(char c){ ... }`
相当于对 **synchronized(this)** ,表示整个方法为同步方法
#### 线程同步控制
* 使用 **wait()** 方法可以释放对象锁
* 使用 **notify()** 或**notifyAll()**可以让等待的一个或所有线程进行就绪状态
* Java 里面可以将 wait 和notify 放在 synchronized 里面,是因为 Java 是这样处理的
* 在 **synchronized** 代码被执行期间,线程调用对象的 wait() 方法,会释放对象锁标志,然后进入等待状态,然后由其他线程调用 notify() 或者 notifyAll() 方法通知正在等待的线程
------
* 把竞争访问的资源标示为++private++;
* 同步那些访问资源的代码,使用synchronize关键字来修饰方法或者代码块,当synchronize方法执行完成或发生异常的时候,会自动的释放锁
```java
/*某银行账号上有500元的现金,一个人拿着正卡去柜台取钱,而另一个人则拿着副卡器ATM机上去取钱,各自取400元钱。要求:不能出现资源竞争,如同时取出400元,或者取的钱大于500元等;*/
package hellojava;
/**
* 某账号上有500块钱,一个人拿着存折去柜台取,另一个人拿着银行卡去ATM机上取
* 各�
点击阅读更多
资源评论
那你干哈
- 粉丝: 26
- 资源: 289
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功