上一页 1 2 3 4 5 6 7 8 ··· 15 下一页
摘要: 在网络编程中,我们经常会遇到阻塞、非阻塞、同步、异步这两组概念,许多人很容易混淆,现在就给大伙儿说说我对着两组概念的理解。先说说阻塞与非阻塞,这主要和程序等待消息时的状态有关1、阻塞程序会阻塞在某一个函数,而不往下执行,就如挂在那里一样,所有的其他业务也都不执行,为一直等到消息到来才往下执行。2、非阻塞程序不会阻塞在某一个函数,不等待消息到来,立即返回,往下执行。举个例子,TCP协议中的send,系统会为其分配一块发送缓存区,假设现在总的缓存 区的大小为1000.,而缓存区里已经有了500个数据,这时调用send,发送1000个字节数据,这时如果在阻塞模式下,send的会先最多的数据放入缓存, 阅读全文
posted @ 2014-03-18 17:17 行进 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 1.多线程简单使用(1)进程是不执行代码的,执行代码的是线程,一个进程默认有一个线程(2)线程默认情况下都是前台线程,要所有的前台线程退出以后程序才会退出,进程里默认的线程我们叫做主线程或者叫做UI线程(3)线程什么时候结束?如果线程是前台线程,该线程执行的方法执行完以后线程就会自动退出(4)后台线程只要所有的前台线程结束,后台线程就会立即结束(5)多个线程访问同一资源,可能造成不同步的情况,这个叫做线程重入,可以使用lock加锁将执行的共同方法中的代码加上lock(6)thread.Abort();//强行停止线程Thread.Sleep(5000);//将当前线程暂停5秒Thread th 阅读全文
posted @ 2014-03-18 17:10 行进 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 所谓白话即是将事物的原理用通俗易懂的语言表达出来,接下来我们就说一说我们平时用到的进程与线程在操作系统中是如何被管理以及调度的。 其实操作系统本质上的意义就是如何让我们更方便的来使用这些如 cpu、内存、网卡 等物理设施,给我们的生活带来便利或更优质的生活享受。如我们打开电脑后,启动操作系统,安装应用就可以在线看电视或者打游戏。或者对于我们技术人员来讲,在我们的开发过程中,假如我们要读取硬盘中的数据,我们直接调用read系统调用就可以,我们无需去关心磁头的移动与柱面扇区如何移动才能读出数据。或者我们分配内存,我们直接调用malloc系统调用就可以分配内存,我们也无需关心内存条到底还有多少... 阅读全文
posted @ 2014-03-17 17:14 行进 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 定义和用法enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。默认情况下,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX(16进制) 值)实例在下面的例子中,表单数据会在未编码的情况下进行发送: First name: Last name: 语法属性值值描述application/x-www-form-urlencoded在发送前编码所有字符(默认)multipart/form-dat 阅读全文
posted @ 2014-03-15 21:47 行进 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 在网站开发中,通常会使用Session来判断用户是否有登录和一些相关的信息.在.net的开发过程中,我发现其Session会时不时退出,没有任何规律可言.这对一些业务系统来说是不可接受的.比如编辑完成提交的时候,提示超时退出了,这可是个要命的问题. 解决的办法一般来说有二种 第一种,使用Cookies机制来保存用户信息 在Cookies中,可以设置cookies超时机制,一般是1个小时,利用这个超时机制来维护用户的状态.每当用户访问一次,就更新Cookies的过期时间.这样在一定的时间内就不会退出. 但要注意,有些浏览器,可能禁止了cookies,如果禁止了,应该提示用户.... 阅读全文
posted @ 2014-03-07 20:28 行进 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 开源项目托管:http://www.apache.org/http://www.googlecode.com/http://www.sf.net/http://www.github.com/http://www.java.net/http://www.codeplex.com/http://www.codeproject.com/http://www.sndacode.com/http://code.taobao.org/顶级开源项目:http://Unix.org/http://Linux.com/http://FreeBSD.org/http://Debian.org/http://Ubu 阅读全文
posted @ 2014-03-07 19:49 行进 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 许多人认为,“缓存”是内存的一部分许多技术文章都是这样教授的但是还是有很多人不知道缓存在什么地方,缓存是做什么用的其实,缓存是CPU的一部分,它存在于CPU中CPU存取数据的速度非常的快,一秒钟能够存取、处理十亿条指令和数据(术语:CPU主频1G),而内存就慢很多,快的内存能够达到几十兆就不错了,可见两者的速度差异是多么的大缓存是为了解决CPU速度和内存速度的速度差异问题内存中被CPU访问最频繁的数据和指令被复制入CPU中的缓存,这样CPU就可以不经常到象“蜗牛”一样慢的内存中去取数据了,CPU只要到缓存中去取就行了,而缓存的速度要比内存快很多这里要特别指出的是:1.因为缓存只是内存中少部分数 阅读全文
posted @ 2014-03-05 21:30 行进 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 详细介绍在《系统缓存全解析一》中提及的动态缓存技术:系统缓存全解析二:动态缓存(1)-传统缓存 与 页面输出缓存一,传统缓存方式:比如将可重复利用的东西放到Application或是Session中去保存。Session["Style"] = val; Application["Count"] = ... 阅读全文
posted @ 2014-03-05 21:28 行进 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 第一分钟:委托 有些教材,博客说到委托都会提到事件,虽然事件是委托的一个实例,但是为了理解起来更简单,今天只谈委托不谈事件。先上一段代码:下边的代码,完成了一个委托应用的演示。一个委托分三个步骤: 1 public partial class WebForm3 : System.Web.UI.Page 2 { 3 //step01:首先用delegate定义一个委托 。 4 public delegate int CalculatorAdd(int x, int y); 5 6 protected void Page_Load(object sender, Even... 阅读全文
posted @ 2014-02-10 21:34 行进 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 面向对象的编程鼓励编程者把功能分散到多个对象中,从而使得每个对象只有唯一的功能(SRP),对象足够的高内聚,这样的代码更容易理解,维护,修改和复用;同时,对象必须互相调用才能共同完成复杂的操作,但如果对象间相互调用太多,又会导致对象间高耦合,使得对一处代码的修改影响到多处看似不相关的代码(散弹效应),为实现高内聚,对象间应该做到少依赖;如果依赖,则依赖于必须的最小接口(ISP)。本文通过一个小例子,尝试分析下对象间调用时调用者和被调用者互相控制的几种方式。今天早上坐(哦,应该是站)地铁,边站边想对象间的调用方式,正好想到了北京地铁最近要提价了。于是想到一个根据上车站点和下车站点显示票价的例子。 阅读全文
posted @ 2014-02-10 20:03 行进 阅读(336) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 15 下一页