自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (10)
  • 收藏
  • 关注

转载 Node初学者入门,一本全面的NodeJS教程

关于 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识。本书绝不是一本“Hello World”的教程。 状态 你正在阅读的已经是本书的最终版。因此,只有当进行错误更正以及针对新版本Node.js的改动进行对应的修正时,才会进行更新。 本书中的代码案例都在Node.js 0.6.11版本中测试过,可以正确工作。

2015-12-28 15:54:46 964

原创 Java并发编程类学习总结

线程的定义Runnable定义线程的接口,只有一个run()方法,而且没有返回值。一般通过实现这个接口来定义线程。public interface Runnable { public abstract void run(); } 经常可以用匿名内部类实现: new Thread(new Runnable(){ @Override

2015-12-25 17:23:34 723

原创 Java并发编程类学习五(同步工具)

内置锁(synchronized)每个Java对象都对应有一个内置锁。有两种方式:第一种直接修饰方法;第二种synchronized后跟加锁的对象。 示范: public synchronized void doSomething(Object obj){ synchronized(obj){ //execute action }

2015-12-25 17:22:34 564

原创 Java并发编程类学习四(线程安全的类)

同步容器类Vector和Hashtable是重量级线程安全的,不建议使用。另外还可以用Collections.synchronizedXXXX工厂方法同步类。并发容器ConcurrentHashMap、ConcurrentLinkedQueue、ConcurrentLinkedDeque、ConcurrentSkipListSet和CopyOnWriteArrayList等等。他们都是线程安全的。阻

2015-12-25 17:21:35 485

原创 Java并发编程类学习三(线程的执行)

Executor任务运行的执行器。可以解耦任务提交和计算的过程。换句话说,只管提交给执行器执行,而不用关系执行的内部过程。 任务被提交后是立即执行的。public interface Executor { void execute(Runnable command); } ExecutorServiceExecutorService继承了Executor接口。提供了管理任务终止的功能,并且

2015-12-25 17:20:14 491

原创 Java并发编程类学习二(线程的包装)

线程的包装可以用这些类对线程进行包装,获取线程的运行的状态。Future表示异步计算处理后的结果。可以检查计算是否完成,是否可以取消。get()方法将一直阻塞等到计算的完成才返回结果。public interface Future<V> { boolean cancel(boolean mayInterruptIfRunning); boolean isCancelled();

2015-12-25 17:18:57 496

原创 Java并发编程类学习一(线程的定义)

Runnable定义线程的接口,只有一个run()方法,而且没有返回值。一般通过实现这个接口来定义线程。public interface Runnable { public abstract void run(); } 经常可以用匿名内部类实现: new Thread(new Runnable(){ @Override publi

2015-12-25 17:17:26 553

原创 优先用静态方法创建对象,考虑用静态工厂方法代替构造器

优势 能用工厂方法名区别不同的创建语境。 控制创建过程,不必每次都创建一个新对象。 可以创建不同子类的实例,隐藏子类的实现。 服务提供者架构的实现一般需要设计如下组件: - 提供服务的接口Service - 提供服务注册的API - 提供服务方法的API,用来获取服务的实例 - 服务提供者接口Provider可以这样来理解,举个例子:你在健身俱乐部办理了一张会员卡,当你去健身时,你要出示这张

2015-12-22 11:30:49 973

原创 Lucene学习入门

概念建立索引为了对文档进行索引,Lucene 提供了五个基础的类,他们分别是 Document, Field, IndexWriter, Analyzer, Directory。下面我们分别介绍一下这五个类的用途:DocumentDocument 是用来描述文档的,这里的文档可以指一个 HTML 页面,一封电子邮件,或者是一个文本文件。一个 Document 对象由多个 Field 对象组成的。可以

2015-12-18 10:42:43 447

原创 ubuntu开机自动项详解

运行级别Ubuntu运行级别Ubuntu的默认开机的runlevel是2,可以用runlevel来查看当前的默认运行级别。 也可以查看/etc/init/rc-sysinit.conf中env DEFAULT_RUNLEVEL=2debian系(ubuntu是基于debian)的Linux一直是用runlevel 2来默认启动,并且runlevel定义也与redhat有区别。 debian的ru

2015-12-18 09:51:00 981

原创 Ubuntu下MySQL安装

aptg-get 安装(推荐)root密码:123456 sudo apt-get install mysql-server mysql-client tar包安装1.下载安装去官网下载mysql-5.6.28-linux-glibc2.5-x86_64.tar包,解压到/usr/local/mysql-5.6.282.添加用户与组groupadd mysql useradd -r -g mys

2015-12-18 09:47:35 438

原创 Spring自定义属性编辑器

概念我们在xml定义bean时,输入的内容都是字符串。spring会根据已经注册好的属性编辑器解析这些字符串,实例化成对应的类型。下面演示一个实例,Customer有一个属性Address,在配置这个Bean时,直接配置成“浙江-杭州-西湖”,根据自定的属性编辑器生成Address对象,并打印出“浙江省杭州市西湖区”。源码Bean定义 package exa.ydoing.spring; class

2015-12-17 22:16:50 2232

原创 Spring容器事件

概念基本概念 事件源:事件生产者 事件监听器注册表:事件监听器的容器。 事件广播器:负责把事件通知给事件监听器,它是事件和事件监听器的桥梁。 Spring事件类结构 事件类ApplicationEvent继承了Java标准库中的EventObject 监听器类ApplicationListener继承了Java标准库中的EventListener。 事件广播器接口ApplicationEventMu

2015-12-15 13:36:57 1204

原创 Spring Bean在BeanFactory生命周期

生命周期过程 如果容器注册InstantiationAwareBeanPostProcessor接口,调用postProcessBeforeInstantiation方法 Bean的实例化(调用默认构造器) 如果容器注册InstantiationAwareBeanPostProcessor接口,调用postProcessAfterInstantiation方法 如果容器注册Instantiation

2015-12-14 18:34:00 1466

原创 RabbitMQ学习入门笔记

RabbitMQ是什么?AMQP即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。 RabbitMQ是一个开源的AMQP实现,服务器端用Erl

2015-12-12 14:13:43 889

OS 操作系统 进程 线程 文件 设备 C# 多用户 登陆 课程设计 报告 算法 FCFS

本系统由用C#语言进行编写和实现,可实现多用户登录。各模块简介如下: 1 文件部分分为C盘和D盘两个磁盘块,在每个磁盘块中均可进行新建、删除、编辑、格式化、显示 属性及个文件等操作。如可新建文件夹、文本文件和可执行文件,并可对新建的文件进行编辑。 此次课程设计中文件系统采用显示链接FAT表。磁盘是断电后内容不丢失的,因此用文件模拟磁盘。要求模拟系统存在两块硬盘:每个磁盘分成128块,每块64字节,第0,1块存放FAT表,第2块存放初始盘快。 文件的逻辑结构采用流式结构; 文件的内容: 文件的内容均采用文本文件,系统中有两种文件: 一种是存放任意字符的文件 一种是可执行文件:可执行文件的内容就是系统内进程的程序体。 文件中要有一种特定命令的“可执行”文件,文件中的命令非常简单,仅仅包括以下几种指令: i=?; 给i赋值一位数 i++; i加1 i--; i减1 !??; end; 第一个?为A,B,C中某个设备,第二个?为一位数,表示使用设备的时间(由于没有 实际设备,所以无法知道设备何时工作完成,所以假定一个数,这个数随着系统时间 增加而递减,减到0时,认为是设备工作完成); end. 表示文件结束,同时将结果写入文件out,其中包括文件路径名和i的值。 用户接口 用户接口提供用户命令接口,要求文件名中既可以支持相对路径的文件名,也可支持绝对路径的路径 名。要求实现以下命令: 创建文件:create 盘符:\文件名(目录名).e(t). 建立新文件,如果原来存在同名文件要提示是否覆盖。 拷贝文件:copy 盘符:\文件名(目录名).e(t). to 盘符: 拷贝文件可同名拷贝,也可更名拷贝 删除文件:delete盘符:\ 文件名(目录名).t(e). 注意:磁盘内和磁盘间文件移动的不同,磁盘内的移动实际只是目录的改变,并不需要真的移动文件 ;磁盘间的文件移动实际上是先拷贝文件到目标磁盘,然后再删除源文件。 2 进程部分 进程管理主要包括进程调度,进程的创建和撤销、进程的阻塞和唤醒,中断作用的实现。 硬件工作的模拟: 中央处理器的模拟 用函数CPU( )(该函数不能有参数)模拟中央处理器。 该函数主要负责解释“可执行文件”中的命令。 i=?; 给i赋值一位数 i++; i加1 i--; i减1 !??; end; 在模拟系统界面上,我们显示了: 就绪队列----进程名称、优先级; 阻塞队列----进程名称、优先级、阻塞原因; 正在运行的进程,该进程的优先级,以及正在运行的指令,中间结果,执行结果; 系统内存的占用情况,剩余空间等,以便显示的提示用户执行新的进程。 注意:CPU只能解释指令寄存器IR中的指令。一个进程的运行时要根据进程执行的位置,将对应的指令 存放到指令寄存器中。 3 存储部分 存储管理部分主要实现主存空 间的分配和回收、存储保护。 模拟系统中,采用页是存储管理方案(PCB区域单独存放) 系统区包括pcb区域 用数组模拟其他内存区域,大小为512字节。 主存分配策略 当有程序要存放入主存时,查看空闲块总数是否够用,如果够用,先分配一块用来存放页表,然后查 位示图中为“0”的位,根据查到的位所在的字号和位号可计算出对应的块号,同时在该位填上占用 标志“1”,并填写页表;不够用,分配失败。 块号=字号*字长+位号 主存回收策略 根据页表归还存储空间时,可以根据归还块的块号推算出在位示图中的位置: 字号=[块号/位示图中字长] 位号=块号mod位示图中字长 然后把这一位的“1”清成“0”,表示该块成为空闲块了 最后回收页表所占用空间 内存部分分为32个物理块,当为分配时均为绿色,分配后变为红色, 进程正在读取的物理块显示 黄色。 4 设备部分 设备管理主要包括设备的分配和回收。 设备的模拟 模拟系统中有A、B、C三种独占型设备,A设备3个,B设备2个,C设备1个。 数据结构 因为模拟系统比较小,因此只要设备表设计合理既可。

2010-05-17

C# socket 源码 多人聊天

C#是微软随着VS.net新推出的一门语言。它作为一门新兴的语言,有着C++的强健,又有着VB等的RAD特性。而且,微软推出C#主要的目的是为了对抗Sun公司的Java。大家都知道Java语言的强大功能,尤其在网络编程方面。于是,C#在网络编程方面也自然不甘落后于人。本文就向大家介绍一下C#下实现套接字(Sockets)编程的一些基本知识,以期能使大家对此有个大致了解。首先,我向大家介绍一下套接字的概念。   套接字基本概念:   套接字是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。可以将套接字看作不同主机间的进程进行双向通信的端点,它构成了单个主机内及整个网络间的编程界面。套接字存在于通信域中,通信域是为了处理一般的线程通过套接字通信而引进的一种抽象概念。套接字通常和同一个域中的套接字交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序)。各种进程使用这个相同的域互相之间用Internet协议簇来进行通信。   套接字可以根据通信性质分类,这种性质对于用户是可见的。应用程序一般仅在同一类的套接字间进行通信。不过只要底层的通信协议允许,不同类型的套接字间也照样可以通信。套接字有两种不同的类型:流套接字和数据报套接字。   套接字工作原理:   要通过互联网进行通信,你至少需要一对套接字,其中一个运行于客户机端,我们称之为ClientSocket,另一个运行于服务器端,我们称之为ServerSocket。   根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。   所谓服务器监听,是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。   所谓客户端请求,是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。   所谓连接确认,是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

2009-12-30

计算机网络原理 CRC C# socket 路由算法

实验一 3 1.实验内容 3 2.实验原理 3 3.实现过程 5 4.运行结果 9 实验二 9 1.实验内容 9 2.实验原理 9 3.实现过程 10 4.运行结果 16 实验三 20 1.实验内容 20 2.实验原理 20 3.实现过程 21 心得体会 25 参考文献 26

2009-12-30

汇编实验 源码 斐波那契函数FIB(N) 统计学生成绩

一、实验--斐波那契函数FIB(N) 3 1.实验目的和要求 3 2.实验内容描述 3 3.程序流程图 3 4.程序源码 4 5.运行结果 7 二、实验--统计学生成绩 7 1.实验目的和要求 7 2.实验内容描述 7 3.程序流程图 8 4.程序源码 9 5.运行结果 10 三、心得体会 10 四、参考文献 11

2009-12-30

编译原理 源码 实验报告

1.词法分析………………………………………. 2.语法分析………………………………………. 3.语义分析………………………………………. 4.心得体会……………………………………….

2009-12-30

北大ACM 题目分类 程序设计

对北京大学的OJ的题目做了详细的分类,对初参加ACM的人很有指导意义!

2009-11-04

ASP.NET 三层结构 源码 C#

该代码简单而且全面的实现了一个三层结构的留言板,对初学者很有指导意义!

2009-11-04

数字电路详细课件 电工技术

课件分为10个章节,详细的介绍了数字电路的各个部分,对想系统学习数字电路技术的人很有帮助!

2009-11-04

C++模板类二叉查找树的实现

这个程序实现了二叉查找树的删除,增加,先序遍历,后序遍历,中序遍历,还有一些非递归和层次遍历!

2009-05-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除