Fork me on GitHub

2012年4月23日

摘要: 引言:上一篇说到了线程池方式来处理服务器端的并发,并给出了一个线程池的方案(半同步,半异步方式)。各有各的好处吧,今天来讲讲关于非阻塞的异步IO。说到异步IO,其实现在很难实现真正的异步,大部分情况下仍然需要阻塞在某个多路复用函数,比如select 或者 epoll 上,得到就绪描述符,然后调用注册在相应描述符上的回调函数。这种方式是现在的反应堆设计的基本思路。我截取一段反应堆模型的图给大家看看。这个图是截取至 python的 twisted 服务器的反应堆文章介绍,但是大致和我们需要的理念一样。事件循环阻塞查看描述符是否就绪,当就绪后返回可读或可写的描述符,也有可能带外数据或者出错等情况。因 阅读全文
posted @ 2012-04-23 22:28 HackerVirus 阅读(326) 评论(0) 推荐(0)
摘要: 这是我早期在网上看的javascript学习方法,觉得很不错,就保存到word了,这几天学习Js,再看了一遍,对初学或者已经会Js的程序员来说,还是可以学习的。还有大家如果有更好的Js学习方法,可以提供下噢。谢谢!1.Javascript数组API1.//定义数组2.varpageIds=newArray();3.pageIds.push('A');4.5.数组长度6.pageIds.length;7.8.//shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined9.vara=[1,2,3,4,5];10.varb=a.shift();//a:[ 阅读全文
posted @ 2012-04-23 22:26 HackerVirus 阅读(182) 评论(0) 推荐(0)
摘要: 内容摘要这一讲,我将探讨控件级别的复用性设计。我会讲解WPF和Silverlight中内置的控件,以及他们的一些内部组成部分和继承关系。WPF和Silverlight作为一种主要作为界面开发的开发框架,我们在使用他们做开发的时候,会用到各种各样的控件,或者出于某些原因,我们还会编写自定义控件或者用户控件。控件从一开始就是为了复用而设计的,这一讲我将带领大家更好地理解这一点。视频地址http://www.tudou.com/programs/view/IXywBFf6eyU/分类:fmplan-02 - Developement Practice-02-1-Desktop 阅读全文
posted @ 2012-04-23 22:26 HackerVirus 阅读(202) 评论(0) 推荐(0)
摘要: 软件设计在上一篇中我们配置好了主从库,现在我们尝试在程序中使用主从库。主从库之间是一种发布订阅的关系,发布者和订阅者之间并非实时同步的,通常会有几分钟的延时,更有甚者会有几个小时的延时。所以我们需要通过合理的使用来避开有延时这个问题。我们希望主库尽可能的少参与查询,来提高写的及时性;同时要让从库在不影响读出数据的准确及时的前提下尽可能的分担主库的压力。主从两个库需要在配置文件中配置两个连接字符串,CONN_Master和CONN_Slave。我们需要设定一些规则决定当前的查询应该从主库查还是需要从从库查。这个规则没有定式,只能根据业务需要来确定。下面我举几个例子来说明:1. 以豆瓣读书书的详细 阅读全文
posted @ 2012-04-23 22:24 HackerVirus 阅读(211) 评论(0) 推荐(0)
摘要: 周末参加了@淘宝技术嘉年华主办的技术沙龙,感觉收获颇丰,非常感谢淘宝人的分享。这里我把淘宝下单高并发解决方案的个人理解分享一下。我不是淘宝技术人员,本文只是写自己的理解,所以肯定是会有一些出入的。在session中牧劳为我们介绍了淘宝下单部分的技术方案变迁,我不介绍变迁,而只对现有系统做介绍。要优化下单,提高下单的TPS (Transaction per second),我们首先要做的是对下单的逻辑剥离,只保留核心部分,而把附加功能剔除出去。比如说下单要考虑库存量,考虑发短信,要给卖家发旺旺消息通知,要对订单做统计,要做销售额统计等等,这些功能是必要的,但是也是附加的功能,要最大程度提高下单这 阅读全文
posted @ 2012-04-23 22:22 HackerVirus 阅读(239) 评论(0) 推荐(0)
摘要: MSSQlServer所谓的分布式查询(Distributed Query)是能够访问存放在同一部计算机或不同计算机上的SQL Server或不同种类的数据源, 从概念上来说分布式查询与普通查询区别 它需要连接多个MSSQL服务器也就是具有多了数据源.实现在服务器跨域或跨服务器访问. 而这些查询是否被使用完全看使用的需要.本篇将演示利用SQlExpress链接远程SQlServer来获取数据方式来详细说明分布式查询需要注意细节.先看一下系统架构数据查询基本处理:当然如果采用了分布式查询 我们系统采取数据DataBase也就可能在多个远程[Remote Server]上访问时:如上截取系统架构中 阅读全文
posted @ 2012-04-23 21:55 HackerVirus 阅读(202) 评论(0) 推荐(0)
摘要: 锁的概述一.为什么要引入锁多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统脏读A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致不可重复读A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些操作以避免产生数据不一致二锁的分类锁的类别有两种分法:1.从数据库系统的角度来看:分为独占锁(即排它锁),共享 阅读全文
posted @ 2012-04-23 21:51 HackerVirus 阅读(237) 评论(0) 推荐(0)
摘要: Microsoft帮助中描述如下:timestamptimestamp 这种数据类型表现自动生成的二进制数,确保这些数在数据库中是唯一的。timestamp一般用作给表行加版本戳的机制。存储大小为 8 字节。注释Transact-SQLtimestamp数据类型与在 SQL-92 标准中定义的timestamp数据类型不同。SQL-92timestamp数据类型等价于 Transact-SQLdatetime数据类型。Microsoft® SQL Server™ 将来的版本可能会修改 Transact-SQLtimestamp数据类型的行为,使它与在标准中定义的行为一致。到那时,当前 阅读全文
posted @ 2012-04-23 21:49 HackerVirus 阅读(751) 评论(0) 推荐(0)
摘要: 从去年到今年,陆陆续续看完了《代码大全》、《重构》、《代码整洁之道》、《程序员修炼之道》以及《The Art of Readable Code》,获益匪浅。下面就分享几条我赞同并信奉的编程哲学,顺便废话几句。本文适合有一定编程经验的读者阅读,高手请轻喷:)代码是写给人看的(Coding for Reading)请先思考,评价一段代码优劣最重要的标准是什么?有个著名的图,相信大家都见过,讲的是Code Review时被骂WTF的次数越少,代码的质量就越高。这虽然有点无厘头,但是却不无道理。《The Art of Readable Code》中告诉我们,评价一段代码的质量的最佳标准是可读性,即别人 阅读全文
posted @ 2012-04-23 09:32 HackerVirus 阅读(368) 评论(0) 推荐(1)
摘要: By Tom Dykstra, Tom Dykstra is a Senior Programming Writer on Microsoft's Web Platform & Tools Content Team.原文地址:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/handling-concurrency-with-the-entity-framework-in-an-asp-net-mvc-application全文目录:Contoso 大学 - 使用 EF Code First 创 阅读全文
posted @ 2012-04-23 09:30 HackerVirus 阅读(252) 评论(0) 推荐(0)