摘要: 输出结果: 一致处于阻塞状态,可以通过jps命令查看信息得到 然后再执行 jstack -l 8064 得到信息 死锁的一个经典场景为哲学家就餐问题。 产生死锁的原因主要是: (1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得 阅读全文
posted @ 2017-04-17 18:22 soar_hu 阅读(510) 评论(0) 推荐(0) 编辑
摘要: 1.1、synchronized方法的弊端 输出结果: 当把同步方法改为同步代码块时, 输出结果: 可见,并没有提升效率,这是因为锁定的范围比较广,所以效果和锁方法的差别并不是太。那么可以缩小边界区,也就是资源真正开始竞争的地方。因为类中的成员变量才是资源的竞争对象,所以需要在访问这些变量的地方进行 阅读全文
posted @ 2017-04-17 17:19 soar_hu 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 非线程安全其实是在多个线程对同一个对象实例的变量进行并发访问的时候发生,产生的后果就是脏读,也就是取到的数据是修改过的。而线程安全就是获得的实例变量的值是经过同步处理的,从而不会出现脏读现象。 什么时候使用同步呢?可以运用Brian的同步规则: 1.1、同步语句 1.1.1、实例变量非线程安全 如果 阅读全文
posted @ 2017-04-17 15:23 soar_hu 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 在Thread类中有很多方法值得我们关注一下。下面选取几个进行范例: 1.1、isAlive()方法 java api 描述如下: 示例代码如下: 输出结果: 1->false3->true2->false 在main线程休眠3秒后,子线程此时已经结束。那么isAlive()方法放回为假。 1.2: 阅读全文
posted @ 2017-04-17 11:21 soar_hu 阅读(282) 评论(0) 推荐(1) 编辑
摘要: 1.1、概念: 进程:进程是操作系统结构的基础,是一次程序的执行;是一个程序及其数据再处理器上顺序执行时所发生的活动;是程序再一个数据集合上运行的过程,它是系统进行系统资源分配和调度的最小单元。 线程:可以理解为一个程序的不同执行路径,是程序执行流的最小单元。线程是进程中的一个实体,是被系统独立调度 阅读全文
posted @ 2017-04-17 05:54 soar_hu 阅读(272) 评论(0) 推荐(1) 编辑