自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

涂作权的博客

成功就是将个人潜能发挥到极限!&&以大多数人的努力程度之低,根本还轮不到拼天赋!

  • 博客(93)
  • 资源 (28)
  • 收藏
  • 关注

原创 5高并发服务器:socket IPC

socket IPCsocket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算

2014-09-30 22:53:03 1617

原创 4高并发服务器:UDP局域网服务器(组播)

1 UDP局域网服务器A读出每一个客户端发送过来的数据包,然后fork出子进程,由子进程去处理客户端请求。B客户端与服务器段交换多个数据报,服务器为每一个客户端连接创建新的socket,在其上bind一个临时端口,然后用该socket处理对应客户端上的所有应答,这个办法要求在客户查看服务器第一个应答中的源端口号。然后后面利用此端口号和服务器进行交互。2函

2014-09-30 22:42:41 4782

原创 3高并发服务器:多路IO之epoll

1 epollepoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并、发连接中只有少量活跃的情况下的系统CPU利用率,因为它会复用文件描述符集合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Read

2014-09-30 22:41:46 1997

原创 2高并发服务器:多路IO之poll

1 pollA依赖的头文件#include B函数声明int poll(struct pollfd *fds, nfds_t nfds,int timeout); struct pollfd {int fd; /*文件描述符*/short events; /*监控的事件*/short revents

2014-09-30 22:36:58 1747

原创 1高并发服务器:多路IO之select

1 selectA:select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开的文件描述符个数并不能改变select监听文件个数B:解决1024以下客户端时使用select是很合适的,但如果链接客户端过多,select采用的是轮询模型,会大大降低服务器响应效率,不应在select上投入更多精力2依赖的头文件

2014-09-30 22:35:30 3158

原创 3socket编程:UDP编程

1 C/S模型—UDPUDP处理模型说明:由于UDP不需要维护连接,程序逻辑简单了很多,但是UDP协议是不可靠的,实际上有很多保证通讯可靠性的机制需要在应用层实现。编译运行server,在两个终端里各开一个client与server交互,看看server是否具有并发服务的能力。用Ctrl+C关闭server,然后再运行server,看此时

2014-09-30 22:22:42 1528

原创 2高并发服务器:多线程服务器

1多进程并发服务器在使用线程模型开发服务器时需要考虑以下问题:A调整进程最大文件描述符上限B线程如有共享数据,考虑线程同步C服务于客户端线程退出时,退出处理D2.案例说明server.c,代码如下:/* server.c */#include #include

2014-09-27 23:58:58 2159

原创 1高并发服务器:多进程服务器

1多进程并发服务器使用多进程并发服务器时要考虑以下几点:A.父最大文件描述个数(父进程中需要close关闭accept返回的新文件描述符)B.系统内创建进程个数(和内存大小相关)C.进程创建过多是否降低整体服务性能(进程调度)2.案例说明server.c,代码如下:#include #inclu

2014-09-27 23:57:18 1824

原创 1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client

1 Socket编程socket这个词可以表示很多概念:在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”就称为socket。在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接。socket本身有“插座”的意思

2014-09-27 23:55:43 2234

原创 1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client

1 Socket编程socket这个词可以表示很多概念:在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”就称为socket。在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接。socket本身有“插座”的意思

2014-09-26 22:39:01 2383

转载 ubuntu下安装mysql

 现在的软件越来越好安装,尤其是在ubuntu下安装软件,更是没有技巧,只需要在联网的情况下使用apt-get inatll 即可。在决定安装mysql之前,要先确定系统是否已经安装mysql。如下图:     由此可以看出系统中并没有安装mysql.下面执行sudo apt-get install mysql-server my-client进行安装。下图: 输入

2014-09-26 01:09:25 990

原创 5进程间锁:进程间pthread_mutex,文件锁

1进程间pthread_mutexA依赖的头文件#includeB函数声明intpthread_mutexattr_destroy(pthread_mutexattr_t *attr);intpthread_mutexattr_setpshared(pthread_mutexattr_t *attr, int pshared);int

2014-09-25 17:02:04 4990

原创 4线程同步:信号量

1信号量信号量可以有n把锁。依赖的头文件#include 函数声明sem_t表示信号量 int sem_init(sem_t *sem, int pshared,unsigned int value);名称:sem_init功能:

2014-09-25 16:57:47 1402

原创 3线程同步:条件变量

1条件变量条件变量给多个线程提供了一个汇合的场所。依赖的头文件#include函数声明定义分配条件变量pthread_cond_t cond =PTHREAD_COND_INITIALIZER; int pthread_cond_init(pthread_cond_t*restrict cond, const pthread_co

2014-09-25 16:55:12 1402

原创 2线程同步:读写锁

1读写锁读共享,写独占2读写锁说明读写锁与互斥量类似,不过读写锁的并行性更高。读写锁可以有三种状态:A读模式加锁B写模式加锁C不加锁3在写加锁状态时,在解锁之前,所有试图对这个锁加锁的线程都会被阻塞。在读加锁状态时,所有试图以读模式对它进行加锁的线程都可以得到访问权限。但是如果线程希望以写模式加锁,它必须阻

2014-09-25 16:52:07 1212

原创 1线程同步:互斥量,死锁

1线程为什么要同步A:共享资源,多个线程都可对共享资源操作。B:线程操作共享资源的先后顺序不确定。C:处理器对存储器的操作一般不是原子操作。2互斥量mutex操作原语pthread_mutex_tpthread_mutex_initpthread_mutex_destroypthread_mutex_lock

2014-09-25 16:44:58 2645

原创 3线程的终止方式,线程属性,NPTL

1线程终止方式如果需要只终止某个线程而不终止整个线程,可以有三种方法:A:从主线程函数return.这种方法对主线程不适合,从main函数return相当于调用exit.B:一个线程可以调用pthread_cancel终止同一进程中的另一个线程。C:线程可以调用pthread_exit终止自己 同一个进程的线程间,pthread_canc

2014-09-25 16:41:05 1167

原创 2线程原语:pthread_create(),pthread_self(),pthread_exit(),pthread_join(),pthread_cancel(),pthread_detach(

1 pthread_create()函数创建线程A:依赖的头文件#includeB:函数声明int pthread_create(pthread_t *thread, constpthread_attr_t *attr,void *(*start_routine) (void *), void *arg);pthread_t

2014-09-25 16:36:58 6444

原创 1线程概念:线程和进程之间的关系,线程间可共享资源,线程间非共享资源,线程的优缺点

1线程概念1.1什么是线程1.1.2线程和进程的关系        1.轻量级进程(light-weightprocess),也有PCB,创建线程使用底层函数和进程一样,都是clone.2.从内核里看进程和线程是一样的,都有各自不同的PCB,但是PCB中指向内存资源的三级页表示相同的3.进程可以蜕变成线程4.在美国人眼里,线程就是寄存

2014-09-25 16:21:40 2269

转载 window下eclipse +cdt+cygwin做C,C++开发环境搭建 (转自:http://blog.csdn.net/thinkandchange/article/details/7935)

1.Cygwin下载,配置,参看本人ndk开发。给cygwin配置环境变量;2.eclipse for java,javaee的话再安装cdt插件,eclipse for c,c++不需要.3.安装好后eclipse的配置问题.新建工程:注:第一:选Executable 而不是上面的GNU Autotools第二:如果右边没有 Cygwin GCC选项,

2014-09-22 23:01:26 1400

转载 PCB task_struct 数据结构 (转:http://blog.csdn.net/jurrah/article/details/3965437)

在linux 中每一个进程都由task_struct 数据结构来定义. task_struct就是我们通常所说的PCB.她是对进程控制的唯一手段也是最有效的手段. 当我们调用fork() 时, 系统会为我们产生一个task_struct结构。然后从父进程,那里继承一些数据, 并把新的进程插入到进程树中, 以待进行进程管理。因此了解task_struct的结构对于我们理解任务调度(在linu

2014-09-21 11:01:52 2260

原创 2进程之间的关系:进程组,会话,守护进程

1进程组一个或过个进程的集合,进程组ID是一个正整数。用来获得当前进程组ID的函数。pid_t getpgid(pid_t pid)pid_t getpgrp(void)获得父子进程进程组运行结果:组长进程标识:其进程组ID=其进程ID组长进程可以创建一个进程组,创建该进程组中的进程,然后终止,只要进程组中有一个进程存

2014-09-21 01:33:18 2264

原创 1.进程间的关系:终端,网络设备

1终端在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(ControllingTerminal),在讲进程时讲过,控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错误输出

2014-09-21 01:27:03 1294

原创 3信号处理之:避免异步IO的类型,SIGCHLD信号处理

1避免异步I/O的类型sig_atomic_t    平台下的原子类型volatile(晚上上网查找)    防止编译器开启优化选项是,优化对内存的读写。2 SIGCHLD信号处理SIGCHLD的产生条件子进程终止时子进程接收到SIGSTOP信号停止时子进程处在停止态,接受到SIGCONT后唤醒时

2014-09-21 01:20:22 1104

原创 2信号处理之:信号产生原因,进程处理信号行为,信号集处理函数,PCB的信号集,sigprocmask()和sigpending(),信号捕捉设定,sigaction,C标准库信号处理函数,可重入函数,

1信号产生原因2.进程处理信号行为manpage里信号3中处理方式:SIG_IGNSIG_DFL                                           默认Term动作a signal handling function进程处理信号A默认处理动作term  中断

2014-09-21 01:18:58 2121

原创 1.信号处理之:kill(),alarm(),pause()函数

1查看信号的方式:man 7 signal,通过这个命令可以查看到所有信息。2查看信号kill -l注意,后面的32个信号表示的实时信号。 会发现一个规律,前32种信号会有各种不同的名称,后32种会以“SIGRTMIN”或者“SIGRTMAX”开头,前者是从unix继承下来的信号,称为不可靠信号(也称为非实时信号),后者为了解决“不可

2014-09-21 01:13:51 1902

原创 2Makefile

1关于Makefile,在编写Makefile的时候,Makefile这个名称第一个字母要大写。并且必须是Makefile.一个Makefile就相当于:#目标:依赖(条件)#      命令    à注意这里前面是一个tab2案例:A:创建一个项目calc,案例项目结构如下:B编写mul.cC编写sub.

2014-09-20 23:55:56 1091

原创 3Linux内存映射,mmap()函数

1mmap()依赖的头文件#include 2函数声明:void *mmap(void *addr, size_t length, intprot, int flags,    intfd, off_t offset);int munmap(void *addr, size_t length);函数说明:mmap可以把磁盘文件

2014-09-20 23:48:33 1235

原创 2fifo有名管道

1fifo有名管道创建一个有名管道,fifo2.fifo依赖的头文件#include #include 函数声明int mkfifo(const char *pathname, mode_tmode);3.fifo的写端应用#include #include #include

2014-09-20 23:46:34 1185

原创 1pipe管道

1进程间通信每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。2pipe管

2014-09-20 23:46:29 1876

原创 6进程原语:wait()和waitpid()函数

1 wait/waitpid僵尸进程:子进程退出,父进程没有回收子进程资源(PCB),则子进程变成僵尸进程孤儿进程:父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为1号进程init进程,称为init进程领养孤儿进程2依赖的头文件#include #include 3函数声明pid_t wait(int

2014-09-20 23:41:59 2338

原创 3进程状态getrlimit()函数和setrlimit()函数

1修改进程资源限制,软限制可改,最大值不能超过硬限制,硬限制只有root用户可以修改查看进程资源限制cat /proc/self/limitsulimit -a                                  2getrlimit()函数和setrlimit()函数A依赖的头文件#include#in

2014-09-17 07:00:10 2064

原创 5进程原语:execl(),execlp(),execle(),execv(),execvp(),execvp(),execve()

1.exec族依赖的头文件#includeextern char**environ;2函数声明//第一个参数:可执行程序所在的绝对位置//第二个参数:可执行程序运行时所需的参数,这里是一个可变参数,每个参数之间用逗号分割//参数结束时,最后一个参数是:NULLint execl(constchar *path, const cha

2014-09-17 06:56:31 7879

原创 4进程原语:fork()函数,getpid()函数和getppid()函数,getuid()函数,getgid()函数,vfork()

1fork()函数子进程复制父进程的0到3g空间和父进程内核中的PCB,但id号不同。fork调用一次返回两次,有以下特点:A:父进程中返回子进程IDB:子进程中返回0C:读时共享,写时复制2fork()依赖的头文件#include 3fork()函数说明:pid_tfork(void);                 

2014-09-16 23:38:26 4191

原创 2通过程序获得环境变量,getenv(),setenv()函数和unsetenv()函数,env查看环境变量,echo输出指定的环境变量

1进程环境libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以在使用时要用extern声明。例如:运行结果:2.env命令可以查看进程信息3.echo $环境变量名 得出环境变量的值4getenv()A依赖头文件#includeB函数声

2014-09-16 00:33:42 4449

原创 1虚拟地址,虚拟内存映射,系统调用本质,进程运行状态

1操作系统会为每个进程分配0到4G的虚拟地址2.关于虚拟内存和物理内存之间的关系总结:A程序管理内存的最小单位是page(4096Byte),如果需要的内存不够4096字节,实际上开辟的也是4096字节。B每个程序对应独立的虚拟内存,调用的时候先找自己的虚拟内存,然后实质上是通过虚拟内存找物理内存。C每个进程共享操作系统的kern

2014-09-15 23:31:57 1398

原创 11Linux服务器编程之:VFS虚拟文件系统,dup()函数和dup2()函数

1dup函数和dup2函数#includeint dup(intoldfd);int dup2(intoldfd, int newfd); dup和dup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。如果两个文件描述符指向同一个file结构体,File Status Flag和读写位置只保存一份在file结构体

2014-09-15 23:27:53 1454

原创 9Linux服务器编程之:mkdir()函数和rmdir()函数

1 mkdir依赖的头文件#include#include                       2.函数声明:int mkdir(const char *pathname, mode_tmode);3.案例说明:运行结果:注意:函数声明中的mode表示的是权限是多少4rmdir:删除一个目录所依

2014-09-15 23:25:34 1769

原创 10Linux服务器编程之:opendir()函数,readdir()函数,rewinddir()函数,telldir()函数和seekdir()函数,closedir()函数

1 opendir所需的头文件#include#include2函数声明DIR *opendir(const char *name);DIR *fdopendir(int fd);通过opendir来打开一个文件夹3readdir依赖的头文件#include4函数声明struct dirent *readd

2014-09-15 23:24:12 2684

原创 8Linux服务器编程之:chdir()函数和cd命令,getcwd()函数和pwd

1chdir依赖的头文件#include2函数定义int chdir(const char *path);int fchdir(int fd);函数说明:chdir的作用是改变工作目录4getcwd依赖的头文件#include5函数定义:char *getcwd(char *buf, size_t size

2014-09-15 23:23:03 4958

easyui资料

这里面包含easyui的chm文档easyui-1.3.5.zip,datagrid项目案例,SSH和easyui整合的案例,easyui异步加载tree,tree和datagrid共用的例子,改好的兼容jQueryUI1.10.3的easyui,另外加一个primeui-10资料。资源分定为1分是为了让大家下载后评论之后能够返还分数!其中为了兼容好jQueryUI,我把jquery-easyui-1.3.5中的10个插件改写了。插件名为:plugins : ["easyUiDraggable", "droppable", "easyUiResizable", "pagination", "easyUiTooltip", "linkbutton", "easyUiMenu", "menubutton", "splitbutton", "easyUiProgressbar", "tree", "combobox", "combotree", "combogrid", "numberbox", "validatebox", "searchbox", "numberspinner", "timespinner", "calendar", "datebox", "datetimebox", "easyUiSlider", "layout", "panel", "datagrid", "propertygrid", "treegrid", "easyUiTabs", "easyUiAccordion", "easyUiWindow", "easyUiDialog"],大家调用的时候要注意下。另外,easyui中的demo里面的案例我都进行了改写(使用的是自己重新改写的easyui)。其中easyui的具体使用方法还可以看官方的easyui文档(此外欢迎访问本人CSDN播客:http://blog.csdn.net/tototuzuoquan),多多希望大家能够秉承开源精神,让人下载资料的时候不要要那么多分!!!!

2014-02-22

Highcharts

Highcharts-3.0.9

2014-02-11

ADT-22.3.0

ADT-22.3.0

2014-02-11

DTLite4356-0091虚拟光驱

DTLite4356-0091虚拟光驱

2013-08-17

spket-1.6.23插件

spket-1.6.23插件

2013-08-17

[myeclipse.10.0.更新发布(破解更新)].MyEclipse10cr.rar

MyEclipse10注册机

2013-08-17

webservice_upload

通过webservice实现的文件上传

2013-06-14

webservice

这里面详细介绍了webservice入门案例,可以通过此文档做出一个webservice案例,此外可以还有一个调用手机归属地的案例的方式。

2013-06-12

webservice案例

这里面包含一个通过jdk里面的webservice对应的API写的一个服务器端程序和客户端程序,此外还包含一个调用网上手机归属地的客户端。

2013-06-12

6个非常精美的404错误提示页面

6个非常精美的404错误提示页面

2013-05-30

ExtJS4.0.7

这里面包含的是ExtJS4.0.7的doc,src,example,local,resources等文件。适合开发ExtJS4.x

2013-04-06

jqueryAPI,类库,例子

这里是最新的JQuery类库,作为我自己的资料,顺便分享给大家。

2012-12-15

搜索引擎nutch配置

这里是在网上搜到的Nutch配置的博客,比较详细,担心自己以后配置的时候忘了,所以传到csdn,顺便分享给大家。

2012-12-15

框架struts2

框架struts2

2012-12-08

毕业论文书写规范

毕业设计(论文)书写规范

2012-12-06

urlrewriter

urlrewriter是一个第三方的组件,用于将项目的中的链接地址重写,确保安全。这里面包含了一个官网中的资源和一个Java项目案例。

2012-11-17

ADT-21.0.0.zip

Android Develop Tool(ADT-21.0.0)

2012-11-15

统一建模语言UML

UML学习用的PPT,详细介绍了各种图的功能

2012-08-02

图片不断循环滚动的js特效

图片不断循环滚动的js特效,测试过了,可以在IE,火狐,Safari,谷歌浏览器上兼容。

2012-07-25

17个在线编辑器,包括kindeditor,STEditor,HTMLArea3.0last20071025等

17个在线编辑器,包括kindeditor,STEditor,HTMLArea3.0last20071025灯

2012-07-22

Eclipse中dropins放置jbpm,svn,Apana插件的link文件

Eclipse,jbpm,svn,Apana,link文件

2012-07-22

ADT-15.0.0

Android开发时用到的插件ADT-15.0.0

2012-07-19

ADT-18.0.0.zip

Android开发使用到的插件ADT-18.0.0.zip,使用时最好还下载最新的Eclipse

2012-07-18

ADT-0.9.6.zip

这是Android模拟器的插件ADT-0.9.6

2012-07-18

二手购物网源码

可配置分页效果,可配置数据库效果(支持MySQL,SQLServer2008,Oracle),订单管理,商品信息发布,管理员,游客,注册用户,JQuery效果,base64加密,MD5.购物车,留言等

2012-05-31

数据采集项目源码

本项目中使用了Spring+Struts2+Hibernate,使用了JFreeChart等,可以生成各种自己想要的问卷。

2012-05-30

强大的购物网代码(java)

一个二手手机网的的软件,支持Mysql,SqlServer,Oracle数据库,可配置的分页效果,自己发布消息自己处理别人订单,使用了JQuery,FileUpload,EL,JSTL,base64加密,MD5加密,包括购物车,添加商品,订单管理,发货管理,留言,注销,等功能,在使用如果想进入管理员界面需要抢先以用户名:manager 密码:manager注册。

2012-05-30

空空如也

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

TA关注的人

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