自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1)
  • 资源 (16)
  • 收藏
  • 关注

原创 并发中的流程控制

异步vs同步 异步(编程)和同步(编程)是对立的。同步是执行某个操作时,必须等待该操作完成,再执行下面的流程。异步则是执行某个操作时,不等待该操作完成,直接执行下面的流程,而在适当的时候,“被”通知到“该操作完成了”。这里的“操作”一般指非纯CPU运算,比如收发网络数据,若一直等待整个操作过程,期间CPU会有空闲。 【程序0】若有流程A、操作X、流程B需要依次执行。 同步的代码:

2013-10-22 23:52:55 961

通用红黑树(Tree-Map)容器纯C实现

纯C实现的通用红黑树容器不好找,于是自己琢磨着实现了一个。 算法部分直接剪裁自Linux内核中的rbtree 作者主要是在此基础上封装了一个通用的容器 里面含有 test例子 以及 benchmark基准测试 另外这个是Windows和Linux都可以用的 由于Linux内核的rbtree用了很多C99语法,笔者还得写了一些宏改造内核代码 Linux下的make是完整的 Windows下提供了VS08版的sln文件(只有test木有benchmark) 附带了一个C++里面的STL Map的benchmark

2012-08-05

nodejs写的HTTP静态文件的引擎(轻量级)

采用nodejs写的,纯javascript代码,无任何依赖(仅使用了nodejs的标准库) 轻量级,代码只有15K,带注释 支持各种配置(内嵌到代码最上面的部分,详细注释) 支持目录访问(自动列出全部子目录和文件,可关闭) 支持欢迎页(index.html,存在该文件就不会列出目录了) 支持小文件内存缓存(LRU算法,可配置尺寸) 支持304木有修改(静态服务器最重要的就是这个了吧) 支持gzip、deflate压缩 支持分段下载(支持部分,可用迅雷等多线程下载工具) 提供动态解析的接口 最后由于是本人练习所用写的,对HTTP协议的支持还是很不完善的,但是稳定性还是可以的,现在该程序运用在Minecraft多人服务器-蓝色星球上,稳定地使用了3个月了吧……

2012-03-10

BrainFuck编程语言

Brainfuck,是一种极小化的计算机语言,它是由Urban Müller在1993年创建的。由于fuck在英语中是脏话,这种语言有时被称为brainf*ck或brainf***,甚至被简称为BF。 【内含:BF解释器,BF解释器源码,BF写的几个小程序】 ReadMe: Brainfuck 编程语言 [图灵完全] [8条指令] 语法: > 指针加一 < 指针减一 + 指针指向的字节的值加一 - 指针指向的字节的值减一 . 输出指针指向的单元内容(ASCII码) , 输入内容到指针指向的单元(ASCII码) [ 如果指针指向的单元值为零,向后跳转到对应的]指令的次一指令处 ] 如果指针指向的单元值不为零,向前跳转到对应的[指令的次一指令处 特性: 8KB 环状内存(初始化为0) <>操作不会越界 加减操作环状 +-操作不会溢出(0xFF + 为 0x00) 文件说明: bf.exe 解释器 Usage: bf [-options] source where options include: -b buffered input (default mode) 缓冲输入(按回车才输入,默认) -i not buffered input 无缓冲输入 -e not buffered input without echo 无缓冲输入且不回显 bf.cpp 解释器的源代码(纯C实现) hello.txt HelloWorld程序 up.txt 这个程序将你的输入(小写字母)转换为大写(回车结束) add.txt 这个程序对两个一位数做加法,并输出结果(如果结果也只有一位数的话)(例如:输入2+3) mul.txt 这个程序对两个一位数做乘法,并输出结果(如果结果也只有一位数的话)(例如:输入2*3) factor.txt 这个程序分解多位数的因子,并输出结果(例如:输入1000) numwarp.txt 这个程序输入 ()-./0123456789abcdef 和空格的字符串,显示很有趣的排列结果(例如:输入520 1314) prime.txt 这个程序输入一个多位整数,输出从1到这个整数间的所有素数(例如:输入100) quine.txt 这个程序输出源代码本身 [以上程序,基本上依靠回车确认]

2011-08-18

C-Minus词法语法分析器(JavaScript实现)

这是《编译原理》的课程设计--C-Minus词法语法分析器(带有课程设计报告),采用Web前端的JavaScript实现,兼容多种浏览器。词法分析器部分采用表驱动机制实现,同时提供一套用于快速验证性的正则匹配测试工具。语法分析器采用LR(0)文法实现,并且提供自动化构造LR(0)的操作表生成器。(源代码的注释非常详细,请先看下里面的"说明.txt")(温馨提示:下载后评论【需要评选等级】会返回被扣除的积分)

2011-06-11

离散数学二元关系类(Java实现)

* 二元关系类及其测试 * 某一集合上的二元关系类 * 提供关系的性质判断 关系间的运算 求关系的闭包 * 判断自反性 * 判断反自反性 * 判断对称性性 * 判断反对称性 * 判断传递性 * 关系和合成运算 * 关系自身与某一关系的运算 * 两个关系之间的运算 * 求一关系的自反闭包 * 求一个关系的对称闭包 * 求一个关系的传递闭包 AND//关系的交运算 OR//关系的并运算 NOT//关系的非运算 XOR//关系的异或运算 SUB//关系的减运算 简单测试如下: 请输入关系矩阵的阶数 3 请输入第一个关系矩阵的各个元素值 1 0 1 1 1 1 1 0 1 请输入第二个关系矩阵的各个元素值 0 0 0 1 1 1 0 0 0 r的自反闭包是 1 0 1 1 1 1 1 0 1 r的对称闭包是 1 1 1 1 1 1 1 1 1 r的传递闭包是 1 0 1 1 1 1 1 0 1 r2是反对称的? false r和r2的并关系是 1 0 1 1 1 1 1 0 1

2011-03-26

离散数学求合适公式的真值表(Java 实现)

* 显示合适公式的真值表 * 提供将一个中缀合适公式的真值表输出到某一PrintStream流中的功能 * 以单个大写字母表示变量(支持26个变量) * 以字符0或者1表示值 * 以 ~ ^ & > - 分别表示 非 析取 合取 条件 双条件 连接词 * 支持 ( )(括号) * 如果公式中有错误将不会输入真值表(将会输出错误信息) 说明:以 ~ ^ & > - 分别表示 非 析取 合取 条件 双条件 连接词 以单个大写字母表示变量(支持26个变量) 以字符0或者1表示值,式子中的T与F 支持 ( )(括号) 如果公式中有错误将不会输入真值表(将会输出错误信息) 注意:输出的结果会同时显示到屏幕与该程序的同目录下的“真值表结果.txt”文件中 直接按回车键(输入为空)则会退出程序 例如:输入 A^B-(1&C)则会显示 该合适公式是 A^B-(1&C) A B C Key 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1

2011-03-26

C++智能指针实现(不用再担心你的内存泄露)

代码量,2.5KB,指针共享操作,自动在最后一个智能指针销毁时delete,不再产生内存泄露。内含简单使用范例。不支持管理数组。设有Debug版本的断言,确保智能空指针不被使用。 /* 智能指针类 不能用于数组,指针指向的数据必须是new出来的 不能创造该类的指针 不能将任意实体指针分别赋值给两个不同的智能指针(通过构造函数或者=) */

2011-03-24

表达式计算(C++ STL 实现)

通过逆波兰式来计算数学中的中缀表达式,例如:3+(4-7*5),主要是处理运算优先级问题。源码里面的注释非常详细,由于基于基本数据类型实现,实用价值较小,用作学习还是很不错的。(支持的符号(半角模式):0123456789 ( ) .(小数点) + - * / !(阶乘) ^(次方))

2011-03-24

.ini文件解析器(C++ 标准库实现)

纯C++标准库实现,仅用到了,这些标准库,没有在Linux下测试过。(简易实现,代码部分仅6K,全采用string类型) /* .ini 文件 解析器【只能读取】 Section和Key只能为字母、数字、下划线、空格、减号、点(且首字符只能为字母数字或下划线,自动忽略前导后导空格) Value不能为制表符、换行、分号等(自动忽略前导后导空格,值可以为空) 整行不能超过4096字节 某个标识符不能超过2048字节 */ 文件为源代码和Dev-C编译的exe以及3个用于测试的 .ini文件(error.ini是故意错的,由于查不到ini的标准,以解析php.ini为准了) 采用一次性全部加载文件的形式(文件太大估计不行)

2011-03-20

简易计算器(Java Swing实现)

/** * Java计算器 * chishaxie * 支持中缀表达式运算(可以算一个很长的数学表达式) * 支持高精度浮点数运算 * 支持按钮和键盘同步监听 * 支持错误处理并提示 */ 可以试试算65535的阶乘啰(等待1分钟左右)

2011-03-10

简单Web服务器(Java实现)

这是《计算机网络》的课程设计--多线程的Web服务器(带有课程设计报告),里面为Eclipse3.5的工程。支持HTTP1.1(但是不完善),支持多线程(采用的线程池),支持简单CGI(仅PHP的CGI模块通过测试),支持配置文件和简单的日志记录。要支持PHP的动态脚本的话,需要自行下载PHP的文件到php目录下,并且更改设置,开启PHP的CGI模式。(请先看下里面的"说明.txt")(温馨提示:下载后评论【需要评选等级】会返回被扣除的积分)

2011-02-20

线程池(Java实现,简易)

可以直接使用的 任意类实现Runnable接口,则可使用 先构造ThreadPool对象,然后调用其execute方法,将自己的线程作为参数传入即可(注意,不能让你的线程开启) 支持最小线程数 支持最大线程数(线程增加后不会减少) 支持线程增长阀值 支持简单日志记录

2011-02-16

C++的线程读写锁(windows实现)

/** * 读写锁 * 读-读并发,读-写互斥,写-写互斥 * Windows NT下可以使用 * 基于CRITICAL_SECTION实现,简单高效,只支持在进程内使用,不支持进程间使用 * 支持限制最大并发读者数 * 写操作优先(即当前有线程在读,有写操作后,不允许再有新的读,直至写操作完成,避免写操作饿死) * 直接加写锁才是写优先状态,采用尝试写是非写优先的 * @version 1.1 */ 附带有使用的例子……

2010-10-27

读写锁(windows版,基于临界区实现,高效,简单)

读写锁(读-读并发,读-写互斥,写-写互斥,基于CRITICAL_SECTION实现,简单高效,不支持进程间使用,写操作优先(即当前有线程在读,有写操作后,不允许再有新的读,直至写操作完成,避免写饿死))

2010-10-25

Java写的排序类(快速排序 堆排序 计数排序 桶排序 归并排序)

//排序类 提供int排序的静态方法 有以下排序: 快速排序 堆排序 计数排序 桶排序 归并排序

2010-06-07

空空如也

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

TA关注的人

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