- 博客(34)
- 资源 (9)
- 收藏
- 关注
原创 python 数据结构各种排序算法
直接上代码# 注意三个冒名双引起来是对一段进行注释。import randomarr = [5,8,6,9,4,10,1,3,6]"""冒泡排序"""def BubbleSort(arr): m = len(arr) i = 0 temp = 0 while( i < m-1): for j in range(0,len(
2013-09-05 22:03:38 983
转载 STL源码笔记之空间配置器
转自:继续微笑lsj整个STL的操作对象都放在容器之内,而容器一定是需要空间配置器以置放资料。空间配置器需要提供如下接口(下面只列出了主要的接口)[html] view plaincopyprint?templateclass T>class allocator{ public: typedef T value_type; typedef T* pinter
2013-08-11 10:33:02 1044
原创 STL源码 萃取技术分析
第一遍读STL源码分析时,看的一头雾水,过段时间再读一遍,确实有了新的理解。首先还是看书本的迭代器原例子#includeusing namespace std;//自定义的迭代器templatestruct MyIter{ typedef T value_type; T* ptr; MyIter(T* p= 0):ptr(p){} T& operator*()c
2013-08-10 21:29:01 999
原创 简单的使用消息队列的多线程通信
下面是简单的两个进程的通信,简称server.c 和 client.cserver.c#include #include #include #include #include #include #include #include #include #include #include #include #include #define SIZE 256usin
2013-06-22 11:05:32 1725
转载 epoll或者kqueue的原理
转自:http://www.zhihu.com/question/20122137首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。不管是文件,还是套接字,还是管道,我们都可以把他们看作流。之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流
2013-05-07 16:18:33 776
转载 extern“c” 用法
转自:百度百科extern“c”目录extern “c”实例展开extern “c”实例展开编辑本段extern “c”简介extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标是“C”的。让我们来详细解读这两重含义。含义(1) 被extern限定的函数或变量是extern类型的:a.extern修饰变量的声明。举例来说,如
2013-05-03 17:55:20 794
转载 volatile使用
转自:百度百科主要作用是告诉编译器:不对volatile变量相关的运算进行优化,即直接从原始内存取得volatile变量值(而不是从register或者cache中读取)volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加vo
2013-05-03 17:24:26 756
转载 select、poll、epoll的比较
elect、poll、epoll的比较http://my.chinaunix.net/space.php?uid=20196318&do=blog&id=366042http://blog.endlesscode.com/2010/03/27/select-poll-epoll-intro/ linux提供了select、poll、epoll接口来实现IO复用,三者的
2013-04-27 17:29:01 755
转载 Epoll vs. IOCP
转自:http://blog.csdn.net/sparkliang/article/details/48365361 Epoll vs. IOCPEpoll 和 IOCP 都是为高性能网络服务器而设计的高效 I/O 模型;都是基于事件驱动的。事件驱动有个著名的好莱坞原则(“不要打电话给我们,我们会打电话给你”)。 不同之处在于:1. Epoll 用于 Linux 系统;而
2013-04-27 17:20:32 899
转载 epoll使用
转自csdn博客:http://blog.csdn.net/ljx0305/article/details/4065058在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的
2013-04-27 17:15:21 582
转载 Linux写时拷贝技术(copy-on-write)
COW技术初窥: 在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。 那么子进程的物理空间没有代码,怎么去取指令执行exec系统调用呢? 在fork之后exec之
2013-04-27 11:08:36 862
转载 linux 下UDP通信(附加测试代码)
转自csdn博客:http://blog.csdn.net/rao_warrior/article/details/8188687运行环境:centos 6.3 说明 :UNIX 网络编程测试代码将客户端、服务端、以及广播消息的服务端都集成一段代码里面,个人感觉还不错呵呵呵里面的注释不多,但是应该不难读懂的,还算比较容易可以把一面代码直接贴下来,用gcc
2013-04-24 11:12:50 1484
转载 fork子进程缓冲
#include unistd.h> #include stdio.h> int main() { pid_t pid; printf( "begin fork\n") ;//line buffer write(STDOUT_FILENO ,"write msg befor fork ,buf after printf\n", sizeo
2013-04-24 11:10:10 820
转载 线程池实现
什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。下面列出线程的一些重要的函数int pthread_create(pthread_t *thread, const
2013-04-24 11:04:50 678
转载 auto_prt(源码学习)
转自:http://blog.csdn.net/rao_warrior/article/details/8295223大家都知道,C++的auto_ptr auto_ptr所做的事情,就是动态分配对象以及当对象不再需要时自动执行清理。然而对于auto_ptr来说,它的规则也挺难记,有时候,我也在想,为什么会有这些规则呢,1) 两个auto_ptr不能同时拥有同一个对象2) 我们
2013-04-24 11:02:17 885
转载 epoll实例
转自:http://blog.csdn.net/rao_warrior/article/details/8753537select/epoll的特点select的特点:select 选择句柄的时候,是遍历所有句柄,也就是说句柄有事件响应时,select需要遍历所有句柄才能获取到哪些句柄有事件通知,因此效率是非常低。但是如果连接很少的情况下, select和epoll的LT触发模式相比,
2013-04-24 10:57:39 801
转载 select函数
转载:http://www.2cto.com/kf/201212/178336.html 套接字select模型是一种比较常用的IO模型。利用该模型可以使Windows socket应用程序可以同时管理多个套接字。 使用select模型,可以使当执行操作的套接字满足可读可写条件时,给应用程序发送通知。收到这个通知后,应用程序再去调用相应的Windows socket API去执
2013-04-23 16:49:26 995
转载 socket也是一种IO(文件处理)
转自:http://www.52rd.com/Blog/Detail_RD.Blog_imjacob_22006.html按: 网络编程也 进行了一段时间了,最近在看ruby的时候,发现 基本的套接字函数理解都有问题。要反思啊=================================================BSD中的 socket编程中 ,tcp 服务器端
2013-04-23 15:41:40 982
转载 socket函数详解
本来是想买本书,但是想想,还是想做些更深层次、更复杂的东西出来。 把基本的用法,注意事项搞清楚就可以 了。所以就想着百度一下,百度百科以及大家一般关注的问题都有会出得来吧。。下面把学习的情况做下简单的“备份” 百度百科原文地址:http://baike.baidu.com/view/13870.htm Socket本身就像是个“孔”或“插座”,在计算机领域里叫套
2013-04-23 15:07:38 1047
转载 Socket中常见的几个转换函数(htonl,htons,ntohl,ntohs,inet_addr,inet_ntoa)
Socket中常见的几个转换函数(htonl,htons,ntohl,ntohs,inet_addr,inet_ntoa) 2009年12月27日 htonl() htons() ntohl() ntohs()及inet_ntoa() inet_addr()的用法 注:其中的h表示“host”,n表示“net”,l表示“long”, 
2013-04-23 11:24:55 1399
转载 老工程师的心理话: 给年轻工程师的十大忠告
其实这篇文章很早就看到了,真的很不错,但每次总是容易忘了,要做到真的要下一番功夫!来源:http://bbs.csai.cn/bbs/view.asp?id=%7B5BE65E83-F64C-479B-B393-A9A592AC9633%7D诸位,咱当电子工程师也是十余年了,不算有出息,环顾四周,也没有看见几个有出息的!回顾工程师生涯,感慨万千,愿意讲几句掏心窝子的话,也算给咱们师弟师
2013-04-23 10:06:48 580
转载 面试中你必须要知道的语言陷阱
如:“你经历太单纯,而我们需要的是社会经验丰富的人”,“你性格过于内向,这恐怕与我们的职业不合适”,“我们需要名牌院校的毕业生,你并非毕业于名牌院校”,“你的专业怎么与所申请的职位不对口?”面对这种咄咄逼人的发问,作为应聘者,首先要做到的就是无论如何不要被“激怒”,如果你被“激怒”了,那么你就已经输掉了。那么,面对这样的发问,如何接招儿呢? □ 如果对方说:“你经历太单纯,而我们需要的是
2013-04-23 09:44:48 569
转载 libevent源码分析
libevent实现了网络IO,timer,signal的事件触发机制. 可以很方便的应用于event-driven服务器中,作为其底层事件处理模块. 比较成功的案例有 memcache(分布式缓存), PLB(负载均衡器)等. 最近研究了一下libevent的源码, 版本是1.3b,可以大概分成几个模块:♦ 事件处理框架♦ 事件引擎模块♦ Buffer管理模块
2013-04-23 09:37:41 779
转载 QQ服务器要和那么多客户端连(成熟的通信模块)
#include多服务器的动态负载均衡 一个服务器连接数量跟端口好无关系!跟线程有关系,跟机器配置和操作系统最大限度有关系比如说WIN2K支持255个线程 在加个线程共享池就能支持到1K个 在加上集群 1k*n*0。8= 在加上地域布置,1亿都能搞定!!QQ 只是连接服务器查找自己的信息和朋友的信息,再就是接受QQ
2013-04-22 22:49:28 1230
转载 文件和文件组 磁盘阵列
当数据库数据过大查询变慢、空间不够的时候,我们就需要使用文件组来扩大数据库储存空间,提高查询效率了。 1、文件和文件组的含义与关系每个数据库有一个主数据文件.和若干个从文件。文件是数据库的物理体现。 文件组可以包括分布在多个逻辑分区的文件,实现负载平衡。文件组允许对文件进行分组,以便于管理和数据的分配/放置。例如,可以分别在三个硬盘驱动器上创建三个文件(Data1.ndf、
2013-04-22 17:28:29 1098
转载 在SQL SERVER 2005的表分区里,如何对已经存在的有数据的表进行分区
2011-10-21 13:07:09| 分类: Mssql2005|字号 订阅http://www.cnblogs.com/jackyrong/archive/2006/11/16/562514.html下面来说下,在SQL SERVER 2005的表分区里,如何对已经存在的有数据的表进行分区,其实道理和之前在http://www.cnblogs
2013-04-22 17:08:40 933
转载 sql分区表和分区函数
转载:http://blog.163.com/dj_djd/blog/static/8397680201192105954868/关解释:1, 创建一个分区函数和创建一个普通的数据库对象(例如表)没什么区别。所以根据标准语法走就OK了。2, partition_function_name是分区函数的名称。分区函数名称在数据库内必须唯一,并且符合标识符的规则。3,
2013-04-22 17:05:17 2296
转载 Linux网络编程--网络知识介绍
Linux网络编程--网络知识介绍(一)Linux网络编程--网络知识介绍Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。 比如我们使用ftp程序从另外一
2013-04-21 22:12:46 791
转载 windows socket
源代码奉上,流程图。。。这个太简单了,你自己看看。。。。。。。//TCP//服务器端程序#include#include#include#include#include #pragma comment( lib, "ws2_32.lib" )#define PORT 2046#define BACKLOG 10#define TRUE 1void main( voi
2013-04-21 22:08:08 801
转载 完成端口模型
完成端口模型“完成端口”模型是迄今为止最为复杂的一种 I / O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的 C P U数量的增多,应用程
2013-04-21 21:22:30 715
转载 同步和异步与阻塞和非阻塞的区别
同步和异步与阻塞与非阻塞是在通信和I/O中常用的字眼,之前在许多地方同步与阻塞,异步与非阻塞常常被混为一谈,带来了许多混乱,其实同步、异步和阻塞、非阻塞是两个不同的概念。最近随着异步IO(AIO)越来越多的应用,对这两个概念进行区分和解释的文章也越来越多,但是问起身边的同学,能说清楚的倒也不多,所以我就顺便跟风写一篇科普文吧(越来越水了=_=)。同步(synchronous)和异步(a
2013-04-21 21:13:59 750
转载 linux带缓冲IO操作与不带缓冲IO操作
open和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”,装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大,则操
2013-03-12 14:59:24 1038
转载 浅谈无缓存I/O操作和标准I/O文件操作区别
浅谈无缓存I/O操作和标准I/O文件操作区别(转)原帖地址 http://www.360doc.com/content/11/0521/11/5455634_118306098.shtml。首先,先稍微了解系统调用的概念: 系统调用,英文名systemcall,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给
2013-03-12 14:53:35 749
jquery实战高清pdf 附源码
2012-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人