2012年10月10日

摘要: 因为最近开始学习使用WCF,而WCF的一大特点就是传输数据前,进行序列化。于是会出现多个线程同时序列化一个对象,于是开始思考,序列化是线程安全的么。去查看MSDN,被告知:此类型的任何公共静态(Visual Basic 中的Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。http://msdn.microsoft.com/zh-cn/library/y50tb888(v=vs.100).aspx假设对象是一个普通的类,我们开4个线程对其属性进行不断的设置,同时开设一个线程进行序列化。Student s = new Student(); Task t ... 阅读全文
posted @ 2012-10-10 00:19 suriyel 阅读(641) 评论(0) 推荐(0) 编辑

2012年8月13日

摘要: 近日,因为需要开发一个功能,需要一个比较复杂的链表的结构,而且因为涉及到多线程的问题,所以在设计锁的时,犯了难。因为没有把逻辑理清楚,在很多没有竞争关系的地方都挂了锁,增加了没必要的消耗,特此总结一下:上锁区域分析1,确定体统中,到底有哪些线程,会对该数据结构进行操作2,划分出他们的竞争区域3,理出他们的对竞争区域进行操作的函数,包括哪步开始进行对对象进行了写操作。4,再开始设计锁 阅读全文
posted @ 2012-08-13 23:10 suriyel 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 今天终于结束了公司为期七天的软件培训,虽然培训的是N年没用的C,但是经过短暂的不适应,还是能很快找到感觉。总结下本次培训的几个关键内容:1,低级错误案例分析。2,性能优化3,需求和代码设计4,测试5,工具6,实战一,低级错误案例分析:通过对公司Top10的低级案例分析的讨论和讲解,笔者对编码规范有了更深一步的认识。原来自己写代码,怎么写都无所谓,以为只要实现功能就OK,现在看来是太幼稚了。总结下一般需要注意的低级错误:1,传入参数合法性验证,不光如此,使用到的全局变量也要进行相应的判断。2,各分支要考虑齐全,各个需要进行的有效判断,都要想到位。3,注意循环条件,不要造成死循环。4,记着要初始化 阅读全文
posted @ 2012-08-13 21:49 suriyel 阅读(200) 评论(0) 推荐(0) 编辑

2011年9月27日

摘要: 工厂模式是使用的最为频繁的一个模式其具体表现就如其名一样,给予程序员所需要的产品。给出个常见场景,例如要实现一个返回 不同计算方式 的工厂类public static Operation createOperation(string operate){//计算类的父类 Operation oper=null; switch(operate) {case "+":oper=new OperationAdd();break; case"-":oper=new OperationSub();break; }return oper;}其实工厂类要做的1,解耦,将 阅读全文
posted @ 2011-09-27 22:16 suriyel 阅读(380) 评论(0) 推荐(0) 编辑

2011年7月28日

摘要: 最近开发的一个项目中,数据库一张表就有几十个列项。如果要将他们全部对象化,开销是相当大的。想了一下,其实可以提供多个初始化方式,只初始化相应需要处理的字节。如果要显示全部的数据,可以通过主键和属性构建双向数据流来从数据库中临时取出相关数据。这样面向对象化开发,就可以集中精力处理重要的数据了。 阅读全文
posted @ 2011-07-28 19:45 suriyel 阅读(265) 评论(1) 推荐(0) 编辑

2011年7月18日

摘要: http://download.microsoft.com/download/1/3/2/1321C45A-AAB0-4033-9D82-F0862EDC8418/SQLServer2008_BOL_Jun2010_CHS.msi 阅读全文
posted @ 2011-07-18 23:52 suriyel 阅读(323) 评论(0) 推荐(0) 编辑

导航