- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
死锁问题
多线程不释放自己拥有的锁标记,而想申请其他线程拥有的锁标记,就会造成死锁。
没有获得加锁对象的锁标记的线程,不能访问只有获得该对象所标记才能访问的同步方法,但可以访问这个对象的非同步的方法。
死锁的两种处理方法
统一排列锁顺序(解决不同方法中对多个共享资源的访问)
对象1的方法
synchronized(a)
synchronized(b)
对象2的方法
synchronized(a)
synchronized(b)
java线程间通信(也就是线程间的相互协调)
等待通知机制
线程间通信使用的空间称之为对象的等待对列(wait pool),该队列也是属于对象的空间的。
进入等待池
使用Object类中wait()的方法,在运行状态中,线程调用wait(),此时表示线程将释放自己所有的锁标记和CPU的占用,同时进入这个对象的等待池。等待池的状态也是阻塞状态,只不过线程释放自己的锁标记。在对该对象加锁的同步代码块里,才能调用该对象的wait()方法,表示线程将会释放所有锁标记,进入等待队列,线程将进入等待队列状态。
一个线程进入了对一个对象加锁的同步代码块,并对该对象调用了wait()方法,释放自己拥有的所有锁标记,进入该对象等待队列,另一个线程获得了该对象的锁标记,进入代码块对该对象调用了notify()方法(对该对象调用了notifyAll()方法,会释放等待队列里所有的线程),对该对象调用方法的线程也不会释放所拥有的锁标记(对自身没有影响),也就是从等待队列里释放出一线程,释放出的这个线程要继续运行也就还要进入那个同步代码块,因为得不到要访问代码块对象的锁标记,而进入该对象的锁池,等待所标记释放。
注意:用notifyAll()取代notify(),因为在调用notify()方法时,是由系统决定释放出哪个线程。
退出等待池进入锁池
注意:只能对加锁的资源进行wait()和notify()。
1) wait():交出锁和CPU的占用,进入该对象的、等待队列。
2) notify():从对象的等待队列中释放任意的一个线程。
3) notifyAll(): 从对象等待队列中释放所有线程并放到锁池中。
Java的I/O流与文件
Java中的文件操作
File类(java.io.File)可表示文件或者目录(在JAVA中文件和目录都属于这个类中,而且区分不是非常的明显)。
File下的方法是对磁盘上的文件进行磁盘操作,但是无法读取文件的内容。
注意:File类的对象实施表示一个文件并不是真正的文件,只是代理而已,通过代理来操作文件创建一个文件对象和创建一个文件在JAVA中是两个不同的概念。前者是在虚拟机中创建了一个文件,但却并没有将它真正地创建到OS的文件系统中,随着虚拟机的关闭,这个创建的对象也就消失了。而创建一个文件才是在系统中真正地建立一个文件。
例如:
File f=new File(“11.txt”);//创建一个名为11.txt的文件对象
f.CreateNewFile();//真正地创建文件
File类的方法
boolean createNewFile() //创建文件
boolean mkdir() //创建目录
boolean mkdirs() //创建多个目录
boolean delete() //删除文件,删除的是创建File对象时指定与之关联创建的那个文件。
boolean deleteOnExit(); //在JVM进程退出的时候删除文件,这样的操作通常用在临时文件的删除。
String[] List()://返回当前File对象下所以显文件和目录名(相对路径)
File[] ListFiles()://返回当前File对象(必须是目录)所有Files对象,可以用getName()来访问到文件名。
isDirectory()和isFile()//来判断究竟是目录还是文件。
String getParent()//得到父类文件名,只有在构造对象时传入了Parent对象才有。
File getParentFile()//父路径名的抽象路径名,如果没有指定Parent对象,则返回 null。
String getPath()//获得相对路径。
exists() //判断文件或文件夹是否存在。
getAbsolutePath() //获得文件的绝对路径
使用File类的实例
例:这个类是实现了删除_desktop.ini文件的功能
import java.io.*;
public class LsitFile {
public static void main(String[] args) throws Exception{
File f=new File(C
您可能关注的文档
- Android教程之用 HTML 5 构建 Web 应用程序(三).ppt
- Android系列教程(十二) APK软件汉化教程.doc
- Android系统手机的SD卡分区教程.docx
- Android系统的开发教程.pdf
- Android系统的APK软件简易汉化教程.doc
- Android系统系列教程(十二)—APK软件汉化教程.doc
- Android系统系列教程(十八)_—主题更换教程及下载.doc
- Android高手进阶教程(四)之----Android 中自定义属性(a.doc
- Android经典入门教程.pdf
- APK模拟器 Android模拟器 安装使用教程.docx
- 2025年铝合金型材船舶甲板行业报告.docx
- 2025年智能机器人行业五年应用报告.docx
- 2025年城市照明五年升级节能规划报告.docx
- 2026年机器人焊接工业报告及未来五至十年制造业升级报告.docx
- 2025年共享经济出行服务创新与城市交通管理报告.docx
- 2025年智慧社区五年规划:物联网技术驱动居民服务便捷化报告.docx
- 2026年高端酒店品牌升级报告及未来五至十年酒店行业数字化转型报告.docx
- 2026年数字货币行业报告及未来五至十年央行数字货币发展报告.docx
- 2025年互联网券商五年发展:在线开户业务模式创新报告.docx
- 2025年能源行业创新报告及新能源应用分析报告.docx
最近下载
- 《2013年建设工程工程量清单计价规范》GB50500-2013.pdf VIP
- 2025年南京市教师招聘考试公共知识试题卷(含历年真题赠送).docx
- 生物命题培训课件.pptx VIP
- Schneider施耐德安装和操作手册-ATV930 ATV950 御程系列变频器安装手册.pdf
- 2025年国考《行测》真题及完整答案详解【夺冠系列】.docx
- J-BT 10466-2020星形弹性联轴器.PDF VIP
- 数据容灾备份中心建设方案书.docx VIP
- 卫生服务中心“十五五”五年中长期发展规划(2025-2029年).pptx
- 第十一章 地层与地层单位.ppt VIP
- 石膏板生产线联合车间车间施工组织设计.doc VIP
原创力文档


文档评论(0)