成功的路上总是离不开贵人的帮助,名师的指点和小人的刺激。

莫怕,过了桥,就翻篇了

2017年12月4日 #

2.1.4synchronized方法与锁对象

摘要: 为了证明线程锁的是对象 测试 结果如上分析,代码调用是异步随机执行。 然后在方法中加同步关键字 结果分析: 调用关键字synchronized声明的方法一定是排队运行的,只有共享的资源才需要同步,如果不是共享的资源,根本没有必要同步。 那如果其他的方法被调用会有什么效果。 测试 继续更改MyObje 阅读全文

posted @ 2017-12-04 19:00 痞子陈2016 阅读(422) 评论(0) 推荐(0) 编辑

2.1.3多个对象多个锁

摘要: 测试如下 结果分析:本测试实例化了2个对象,分别开启两个线程进行访问,效果却不是同步执行的,而是异步执行,因为本实例创建了2个锁,虽然使用了synchronized关键字,但是打印顺序不是同步的,而是交叉的。 关键字synchronized取得的锁是对象锁,而非一段代码或方法的锁,哪个线程先执行该关 阅读全文

posted @ 2017-12-04 18:36 痞子陈2016 阅读(307) 评论(0) 推荐(0) 编辑

2.1.2实例变量非线程安全

摘要: 若多个线程共同访问1个对象中的实例变量,那么有可能出现非线程安全的问题。 测试如下 结果分析:出现了非线程安全的问题,那如何解决呢? 使用synchronized关键字 结果分析:使用synchronized关键字,当a拿到锁之后,只有当前执行完毕释放锁的时候,b才能拿到锁,解决了线程安全。而且代码 阅读全文

posted @ 2017-12-04 18:26 痞子陈2016 阅读(196) 评论(0) 推荐(0) 编辑

2.1.1方法内的变量为线程安全

摘要: 非线程安全的问题存在于实例变量中,如果是方法内部的私有变量,则不存在非线程安全的问题,所以也就是线程安全了。 测试 结果分析: 方法变量中不存在非线程安全的问题,永远都是线程安全的,这是方法内部变量是私有造成的。 阅读全文

posted @ 2017-12-04 18:18 痞子陈2016 阅读(639) 评论(0) 推荐(0) 编辑

导航