摘要: wait(): 使当前线程等待,直到其他线程调用该同步监视器notify()方法 , 或者notifyAll()方法来唤醒该线程。 wai()方法有三种形式 , 无参的一直等 ;带毫秒的 , 和带微秒的会等待指定时间后自动苏醒。 调用wait()方法的当前线程会释放该同步监视器的锁定 notify( 阅读全文
posted @ 2018-09-21 15:45 new_boys 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 两个线程互相等待对方释放同步监视器就会发生死锁 结果分析: 副线程先执行 —— b调用bar() —— 进入bar方法前“副线程”对B对象加锁 —— 执行sleep,睡2s —— cpu切换执行到另一个线程 主线程开始执行 —— a调用foo() —— 进入foo方法前“主线程”对A对象加锁 —— 阅读全文
posted @ 2018-09-20 09:36 new_boys 阅读(179) 评论(0) 推荐(0) 编辑
摘要: java5开始可以显示定义同步锁对象来实现同步,这种机制下,同步锁由对象充当Lock比同步代码块和同步方法更加灵活在实现线程安全的机制中,比较常用的是ReentrantLock(可重入锁)。使用该Lock对象可以显示的加锁,释放锁 ReentrantLock 代码格式如下: 阅读全文
posted @ 2018-09-19 17:26 new_boys 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 使用synchronized关键字来修饰某个方法,该方法被称为同步方法。对于synchronized修饰的实例方法(非static方法),无需显示指定同步监视器,同步方法的同步监视器是this,也就是调用该方法的对象。通过同步方法可以非常方便的实现线程安全的类,线程安全的类具有如下特征: 该类的对象 阅读全文
posted @ 2018-09-19 16:27 new_boys 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 线程安全问题:多线程访问同一数据,容易出现线程安全问题 经典问题:银行取钱,1.用户名密码登陆,2.输入取款金额,3.判断账户余额是否大于取款金额,4.如果大于,取款成功,如果小于,取款失败。 同步代码块:上面Demo中,两个并发线程在修改Account对象,很容易造成异常;为了解决这样的异常,ja 阅读全文
posted @ 2018-09-19 15:24 new_boys 阅读(198) 评论(0) 推荐(0) 编辑
摘要: join线程: 程序中有三个线程,Thread-0开始和main线程并发执行,当主程序i==20时,启动了名为Join-Thread线程,Join-Thread线程执行后和Thread-0并发执行 ,该线程不会和main线程并发执行,mian线程需要等待Join-Thread线程执行完毕之后再开始向 阅读全文
posted @ 2018-09-18 13:39 new_boys 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 线程得生命周期: 当线程被创建并且启动之后,并不是一启动就进入执行状态,也不是一直处于执行状态,在线程得生命周期中,他要经过创建(New),就绪(Runnable),运行(Running),阻塞(Blocked),和死亡(Dead)。线程启动以后,不能一直霸占CPU独自运行,CPU需 要在多条线程之 阅读全文
posted @ 2018-09-18 11:06 new_boys 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 进程和线程: 一个程序运行后至少有一个进程,一个进程里面可以包含多个线程,但是至少要包含一个线程。 线程的创建和启动: 方式1:继承Thread类创建线程类,步骤 1.定义Thread类的子类,重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务,因此run()方法也被称为线 阅读全文
posted @ 2018-09-18 09:42 new_boys 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 对象序列化: 对象的序列化(Serialize)指将一个java对象写入IO流中; 对象的反序列化(Deserialize)指从IO流中恢复该Java对象; 序列化的含义和意义: 序列化机制允许将实现序列化的java对象转换成字节序列,将这些字节序列可以保存在磁盘,或者通过网络传输,以后重新恢复成原 阅读全文
posted @ 2018-09-17 09:09 new_boys 阅读(199) 评论(0) 推荐(0) 编辑
摘要: RandomAccessFile: 认识:java输入/输出流体系中功能最丰富的文件内容访问类 既可以读取文件内容,也可以向文件传输数据,并且支持“随机访问“的方式,程序可以跳转到任意地方来读写数据。 特点:与OutputStream/Writer不同,RandomAccessFile允许自由定位记 阅读全文
posted @ 2018-09-14 17:19 new_boys 阅读(189) 评论(0) 推荐(0) 编辑