- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                Core java 经典教程十二
                    
死锁问题
 
多线程不释放自己拥有的锁标记,而想申请其他线程拥有的锁标记,就会造成死锁。
 
没有获得加锁对象的锁标记的线程,不能访问只有获得该对象所标记才能访问的同步方法,但可以访问这个对象的非同步的方法。
 
死锁的两种处理方法
统一排列锁顺序(解决不同方法中对多个共享资源的访问)
	对象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[] a
                您可能关注的文档
最近下载
- 2023年东胜区妇幼保健院护士招聘笔试高频试题摘选含答案详解.docx VIP
- 2025年河北水务有限公司公开招聘运行管理人员85人笔试备考题库及答案解析.docx VIP
- 成人经膀胱腹内压测量的最佳证据总结PPT.pptx VIP
- 体质 体质学说的应用.ppt VIP
- 2023年东胜区人民医院护士招聘笔试高频试题摘选含答案详解.docx VIP
- 2025年河北水务有限公司公开招聘运行管理人员85人笔试参考题库附答案解析.docx VIP
- 机动车查验工作规范(试行).pdf VIP
- 个人简历模板表格简历模板免费下载.docx VIP
- 电大高级财务会计历年来试题及答案.doc VIP
- 拼多多持平投产比计算公式(1).xlsx VIP
 原创力文档
原创力文档 
                        

文档评论(0)