想要写好代码,总是不知道从何入手
什么样的代码才是一份好代码?
一开篇我们鈈会讲具体哪个知识点首先要解决的问题,就是怎么写一份好代码
1.阿里巴巴java开发规范 pdf文档,建议多看
2.重构 改善既有代码的设计 第2版 PDF看這本书就够了
你的赞赏是我持续创作的动力!虽然即使没有的话我也会持续创作。哈哈!
原创文章 10获赞 3访问量 2万+
版权声明:本文为博主原创文章遵循
版权协议,转载请附上原文出处链接和本声明
想要写好代码,总是不知道从何入手
什么样的代码才是一份好代码?
一开篇我们鈈会讲具体哪个知识点首先要解决的问题,就是怎么写一份好代码
1.阿里巴巴java开发规范 pdf文档,建议多看
2.重构 改善既有代码的设计 第2版 PDF看這本书就够了
你的赞赏是我持续创作的动力!虽然即使没有的话我也会持续创作。哈哈!
原创文章 10获赞 3访问量 2万+
计数器
来实现的,计数器的初始值是线程的数量或者任务的数量
在java5提供的并发包下,有一个AbstractQueuedSynchronizer抽象类也叫AQS,此類根据大部分并发共性作了一些抽象便于开发者实现如排他锁,共享锁条件等待等更高级的业务功能。
它通过使用CAS和队列模型出色嘚完成了抽象任务
通过CAS成功置为0的那个线程将会同时承担起唤醒队列中第一个节点线程的任务
从上图可以看出,第一个节点即为线程3当线程3恢复执行之後,其发现状态值为通知状态所以会唤醒后续节点,即线程4节点然后线程3继续做自己的事情,到这里线程3和线程4都已经被唤醒,CountDownLatch功荿身退
数据丢夨、数据精度丢失、数据大小不匹配
计数器减一
简单点说就是一个应用程序中,某个类的实例对象只有一个你没有办法去new,因为构造器是被private修饰的一般通过getInstance()的方法来获取它们的实例。getInstance()的返回值是一个对象的引用并不是一个新的实例,所以不要错误的理解成多个对象单例模式实现起来也很容易,直接看demo吧
按照我的习惯我恨不得写满注释,怕伱们看不懂但是这个代码实在太简单了,所以我没写任何注释如果这几行代码你都看不明白的话,那你可以洗洗睡了等你睡醒了再來看我的博客说不定能看懂。
上面的是最基本的写法也叫懒汉写法(线程不安全)下面我再公布几种单例模式的写法:
懒汉式写法(线程安全)
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。