摘要: 多个线程操作同一个方法或变量时常常出现错误,要保证每个线程都正常运行就要通过加锁,每次只有一个能够拿到锁通过。如下: 如果没有synchronized 的话,运行结果如图。 不再是依次打印出名字,该关键字还可以加在代码块里。一般为了性能,我们要减少同步执行的代码数量(可以用同步代码块就不用同步方法) 阅读全文
posted @ 2017-10-19 23:16 烟味i 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 执行结果: 之间学习并发编程并没有注意到Timer这个类,可能是被摒弃了吧。毕竟现在项目中的定时任务,可以使用组件quartz或者spring框架自带的Task。 我怀疑后面两种也是基于该类实现吧。 阅读全文
posted @ 2017-10-19 22:32 烟味i 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 相比ArrayList,双链表的数据结构就复杂多了,想要弄清代码的意思还是要搞清数据结构层面的变化。 阅读全文
posted @ 2017-10-19 22:26 烟味i 阅读(251) 评论(0) 推荐(0) 编辑