摘要:
主键思维定势导致的惨案 记录一下前段时间工作中遇到的问题,希望这血淋淋的惨案可以警醒与我有相同思维定势的网友。 众所周知一般情况下数据库中的记录是按照主键(主键是整数)递减排列的 select * fromPerson.Address 这种情况下我们直接使用top (100),自然会正确的返回前100条记录select top (100) * from Person.Address所以,我就一直自认为下面的嵌套子查询会返回前100条记录SELECT top (100) [AddressID] ,[AddressLine1] ,[AddressLine2] ,[City] ,[StateProv 阅读全文
摘要:
--ThreadLocal分析学习 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的 阅读全文