上一页 1 ··· 5 6 7 8 9
摘要: 线程通信概念: 线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体,线程间的通信就成为整体的必用方式之一。当线程存在通信指挥,系统间的交互性会更强大,在提高CPU利用率的同时还会使开发人员对线程任务在处理的过程中进行有效的把控与监督。 使用wait/notify方法实现线程 阅读全文
posted @ 2017-02-14 10:18 小~虎 阅读(151) 评论(0) 推荐(0) 编辑
摘要: volatile概念:volatile关键字的主要作用是使变量在多个线程间可见。 看一段demo: 进入run方法..isRunning的值已经被设置了false线程停止false 我们看一个内存分析图: 就是上面框里面写的,被volatile修饰的变量,当变量改变时,会强制线程执行引擎去主内存里去 阅读全文
posted @ 2017-02-13 14:51 小~虎 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 使用synchronized声明的方法在某些情况下是有弊端的,比如A线程调用同步的方法执行一个很长时间的任务,那么B线程就必须等待比较长的时间才能执行,这样的情况下,可以使用synchronized代码块去优化代码执行时间,也就是通常所说的减小锁的粒度。 synchronized可以使用任意的Obj 阅读全文
posted @ 2017-02-10 14:56 小~虎 阅读(132) 评论(0) 推荐(0) 编辑
摘要: synchronized锁重入: 关键字synchronized拥有锁重入的功能,也就是在使用synchronized时,当一个线程得到一个对象的锁后,再次请求此对象时是可以再次得到该对象的锁。 下面看一段锁重入的小demo: method1..method2..method3.. 这是一个最简单的 阅读全文
posted @ 2017-02-10 14:03 小~虎 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 脏读:对于对象的同步和异步的方法,我们在设计自己的程序的时候,一定要考虑问题的整体,不然就会出现数据不一致的错误,很经典的错误就是脏读(dirtyread) 我们首先通过一个小demo来认识一下脏读: setValue最终结果:username = z3 , password = 456getVal 阅读全文
posted @ 2017-02-09 16:11 小~虎 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 一、多个线程多个锁 多个线程多个锁:多个线程,每个线程都可以拿到自己指定的锁,分别获得锁之后,执行synchronized方法体的内容。 代码如下: tag a , set nunm overtag a,num = 100tag b , set nunm overtag b,num = 200 实际 阅读全文
posted @ 2017-02-09 11:46 小~虎 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 恢复内容开始 线程安全概念:当多个线程访问某一个类(对象或方法)时,这个类始终都能变现出正确的行为,那么这个类(对象或方法)就是线程安全的。 synchronized:可以在任意对象及方法上加锁,而加锁的这段代码称为"互斥区"或"临界区"。 下面看一段代码: t3 count = 2t5 count 阅读全文
posted @ 2017-02-09 09:58 小~虎 阅读(112) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9