java 多线程操作(锁)
2024-08-24 14:20:37
1.对象的加锁及其操作
程序中单独的并发线程对同一对象进行操作的代码段,成为临界区。java语言中的临界区可以是一个语句块
或者方法,使用关键字synchronized进行标识。
对象锁:java平台把由synchronized语句指定的对象 设置为对象锁或者监视器(monitor),对象锁是一种独
立方式的排它锁。
排它锁:当一个线程获取对象锁后,便拥有对该对象的完全操作权,其他任何线程不得对象改对象进行任何操作。
2.死锁
如果程序中多个线程相互等待对方持有的对象锁,而如果得不到对方的对象锁都不会释放自己拥有的对象锁,则
会造成线程不能继续运行,这就是死锁。
3.线程交互与同步
wait,notify方法可以实现线程的同步
当线程执行到synchronized块时,如果里面需要的资源得不到满足、处于等待状态,可以使用wait方法,这样在等待
的同时并暂时释放共享数据对象的锁,其他线程可获得改对象锁。完成操作后,只要调用notify方法就可以通知正在等待
的线程重新占有锁。
最新文章
- 理解 Delphi 的类(八) - 关于类的定义
- 【加精】手机话费充值API接口(PHP版)
- java加密算法之AES小记
- SQL Server类型的对应关系
- 尽快写完Math!
- paper 36 :[教程] 基于GridSearch的svm参数寻优
- java中运算符的解析和计算
- Xcode use Protocol buffer
- js 数组,字符串,JSON,bind, Name
- Golang 网络爬虫框架gocolly/colly 三
- .Net语言 APP开发平台——Smobiler学习日志:如何在手机上快速实现CandleStickChart控件
- ascii、unicode、utf-8、gbk 区别
- 6-12mysql库的操作
- STARTTLS is required but host does not support STARTTLS
- [poj2528]Mayor's posters
- jquery有几种选择器?
- 《Linux内核分析》第一周学习小结 计算机是如何工作的?
- 二维码Data Matrix简单介绍及在VS2010中的编译
- Maven-使用及常见问题
- 万网云解析全面升级开放,支持海外IP解析!