在之前学习了单例模式在多线程下的设计,疑惑为何要加volatile关键字.加与不加有什么区别呢?这里我们就来研究一下.单例模式的设计可以参考个人总结的这篇文章 背景:在早期的JVM中,synchronized存在巨大的性能开销.因此,有人想出了一个"聪明"的技巧:双重检查锁定(Double-Checked Locking).人们想通过双重检查锁定来降低同步的开销.下面是使用双重检查锁定来实现延迟初始化的示例代码. public class DoubleCheckedLocking
如果我现在要写个代码生成器,连接数据库,那你得知道有哪些Database存在吧,不然咋整? 在VS中我们添加一个ADO.NET的实体模型 在选择数据库名称的时候就是获取了数据库中Database Instance 执行SQL Query: select * from master..sysdatabases C#中代码自行完善 using (SqlConnection sqlConn = new SqlConnection(connStr)) { if (sqlConn.State != Con
不知道大家对throttle这个单词是否看着眼熟,还是说对这个计算机基础概念有很清晰的了解了.今天就来聊聊和throttle相关的一些技术场景. 定义 我经常有一种感觉,对于英语这门语言的语感,会影响我们对于一些关键技术概念的理解.有时候在学习新技术知识的时候,我会先花一些时间去了解术语英文单词的各种语义,在形成强烈清晰的语感之后,再去深入具体的技术语境.throttle也算是个生僻的单词,至少在口语中毕竟少用到,先来看看词义: a device controlling the flow of