• Java-线程的生命周期

    生命周期:一个事物从出生的那一刻开始到最终死亡中间的整个过程. 在事物的漫长的生命周期过程中,总会经历不同的状态(婴儿状态/青少年状态/中年状态/老年状态...). 线程也是有生命周期的,也是存在不同的状态的,状态相互之间的转换. 有人又把…

  • Java-死锁

    多线程通信的时候很容易造成死锁,死锁无法解决,只能避免: 当A线程等待由B线程持有的锁,而B线程正在等待A线程持有的锁时,发生死锁现象,JVM不检测也不试图避免这种情况,所以程序员必须保证不导致死锁. 避免死锁法则: 当多个线程都要访问共享…

  • Java-解决生产者和消费者问题

    分析生产者和消费者案例存在的问题: 建议在生产姓名和性别之间以及在打印之前使用Thread.sleep(10);使效果更明显. 此时出现下面的情况: 凤姐-男 春哥哥-女 凤姐-男 凤姐-女 问题1:出现姓别紊乱的情况. 解决方案:只要保证…

  • Java-生产者和消费者案例

    线程通信:不同的线程执行不同的任务,如果这些任务有某种关系,线程之间必须能够通信,协调完成工作. 经典的生产者和消费者案例(Producer/Consumer): 分析案例: 1):生产者和消费者应该操作共享的资源(实现方式来做). 2):…

  • debian-查看及删除多余内核

    在debian gnu/linux系统里,几乎每一个文件都可以找到它属于的包,包括内核在内,和那个glibc同一个道理,想知道它的版本号,直接查看包信息即可。如果是要查找已安装的内核,方法很多种,以下两种是个人常用的: [crayon-5b…

  • Java-处理异常的原则

    处理异常的原则: 1:异常只能用于非正常情况,try-catch的存在也会影响性能. 2:需要为异常提供说明文档,比如Java doc,如果自定义了异常或某一个方法抛出了异常,我们应该记录在文档注释中.. 3:尽可能避免异常. 如NullP…

  • Java-异常转译和异常链

    异常转译:当位于最上层的子系统不需要关心底层的异常细节时,常见的做法是捕获原始的异常,把它转换为一个新的不同类型的异常,再抛出新的异常. 根据上述例子: 我的车抛锚了,我在catch中重新抛出一个新的异常(LateException)给我的…

更多...

加载中...