手机随时阅读
新人专享大礼包¥24
线程池实现代码:#pragma once #include<list> #include<cstdio> #include<exception> #include<pthread.h> #include"locker.h" template<class T> class threadpool { pub
进程池在服务器应用中有很多很多=。=下面是半同步半异步进程池的实现代码:#ifndef _PROCESSPOOL_H #define _PROCESSPOOL_H #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet
转载于:https://www.ibm.com/developerworks/cn/linux/l-pipebid/ 问题和常见方法Linux 提供了 popen 和 pclose 函数 (1),用于创建和关闭管道与另外一个进程进行通信。其接口如下:FILE *popen(const char *command, const char&n
作者:Hawstein出处:http://hawstein.com/posts/dp-novice-to-advanced.html前言本文翻译自TopCoder上的一篇文章: Dynamic Programming: From novice to advanced ,并非严格逐字逐句翻译,其中加入了自己的一些理解。水平有限,还望指摘。前言_我们遇到的问题中,有很大一部分可以用
在理解SYN攻击之前我们首先来复习一下TCP的相关知识:TCP协议的连接状态图:TCP的三次连接就是这样的。 当成功建立连接的时候,服务端/客户端双方都会变更为ESTABLISED状态,但是对于服务端而言,还存在着一个状态。叫做办连接的状态,也就是处于SYN_RCVD状态,一直在等待客户端发送连接ACK的确认返回。如果发现有很多SYN_RCVD状态,那
一、TCP/IP 协议介绍在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容。TCP/IP协议是分层的,从底层至应用层分别为:物理层、链路层、网络层、传输层和应用层,如下图所示:TCP的三次握手建立连接:四次挥手释放:在这里提一下HTTP的长连接和短连接:HTTP协议是基于请求/响应模式的,因此只要服务端给了响应,本次HTTP连接就结束了,或者更准确的说,是本次HTTP请求就结束了
首先,URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。而URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。而URN,uniform resource name,统一资源命名,是通过名字来标识资源,比如mailto:java-ne
RAII(Resource Acquisition Is Initialization)资源分配即初始化,定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正确初始化和释放。------------------------------------------------------------------------------------
#pragma once #include <vector> #include <assert.h> // // 小堆 == 大堆 // 仿函数 // template<class T> struct Greater { bool operator()&nb
#include <iostream> using namespace std; #include <vector> class BitMap { public: BitMap() :_size(0) {} BitMap(size_t len) :_size(0) { size_t 
#pragma once #include <string> #include "BitMap.h" struct HashFunc1 { size_t BKDRHash(const char *str) { register size_t 
直接上代码:代码里面有注释#pragma once #include <assert.h> #include <queue> #include "Heap.hpp" #include "UnionFindSet.hpp" // // 临接矩阵表示无向图&有向图 // template<class
1.如果这棵二叉树是二叉查找树,那么记录根节点到x和y节点的路径问题变得很简单,借助于二叉查找树的性质,借助BST的查找过程,很简单便可以做到。void find1(TreeNode* root,TreeNode* p,vector<TreeNode*> &v) {
在二叉树的应用中,很多使用二叉树的操作都是通过遍历来进行节点的修改。所以对于遍历而言是学习二叉树的要点,今天就来总结一下。假设二叉树的结构为:template<class T> struct BinaryTreeNode { BinaryTreeNode(const T& x) :_data(x) ,_left(NULL)
请求搬家到CSDN
判断一棵树是平衡树//树结构 typedef struct TreeNode { Node* _left; Node* _right; int _bf; }Node; int _Height(N
在编写HTTP第三方模块时,需要了解nginx中HTTP模块的数据结构定义HTTP模块方式很简单ngx_module_t ngx_http_mytest_module;就是这么简单,下面先分析一下nginx模块中的所有成员:typedef struct ngx_module_s ngx_module_t; struct ngx_module_s {
以前使用vector容器一直有个误区=。=,然后最近面试被鄙视了QWQ先说一下vector容器的简单原理: 对于vector容器而言,数据结构就是数组,在STL中我有剖析源码。其中实现的是相当于数组的方面,然后其中对于容器的操作函数都有: push_backAdd element at the end (public member function )pop_bac
1.设计模式是什么?设计模式其实就是前人总结,代表了最佳实践,对于软件开发过程中对象的封装模式,也是各种复杂问题,极好解耦性的解决方案。-------------------------------------------------------------------------------------------下面我们来说一下单例模式的基本概念和代码:单例类保证了全局只有唯一一个实例对象单例
这一篇博文就讲一下HTTP协议中的状态码:什么是状态码?状态码指的是HTTP响应中返回的一个回应消息。通过数字表示相关的消息种类。2.状态码具体内容:1xx: 信息消息:描述:100 Continue服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。101 Switching Protocols服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。2xx:
大家在我们清理浏览器浏览痕迹的时候有看到清理cookie的选项, 其实这个cookie机制是为了存储用户数据,存储地点是客户端, Cookie 是一种保持 Web 应用程序连续性(即执行“状态管理”)的方法。浏览器和 Web 服务器除了在短暂的实际信息交换阶段以外总是断开的,而用户
上一篇博客讲解了nginx相关的数据结构。这一篇主要交接如何将自己的模块编译进nginx;一种常用的简单方法:1)首先把源代码文件全部放大一个目录下,然后在改目录中编写一个config用于通知Nginx如何编译本模块,这个文件名必须为config。在configure脚本执行时加入参数--add-module=PATH(上面源码,config的保存目录)执行正常安装流程是完成Nginx的编译工作。
本篇文章主要记录说明使用nginx时,开辟一个简单http模块的时序图,还有nginx中封装的数据结构及其处理函数。 1.如何开发一个充满异步调用,无阻塞的http模块? 首先,我们需要把程序嵌如到nginx中(最终变异处的二进制程序nginx要包含我们的代码)。 然后,这个http模块要能介入到处理流程中。 在正式请求处理时,还要可以获取ngi
提到了git,那么我们首先来了解一下什么是git什么是git?许多人都知道SVN是一个版本管理工具,Git也是一个版本管理工具,是目前世界上最先进的分布式版本管理工具,没有之一!对于版本工具而言,其实就是相当于我们在软件开发中对立的一个操作记录,项目中不同的开发进度分别代表不同的点,有效的记录分配各个项目模块进行管理,并且当出现错误时可以及时的进行回退,有点像数据库的事务。。。2.集合式vs分布式
1.什么是sed工具 sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是 把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出。sed和vi都源于 早期UNIX的ed工具,所以很多sed命令和vi的末行命令是相同的。sed命令行的基本格式为:sed op
什么是正则表达式:正则表达式就是处理字符串的方法,他是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找,删除,替换某种特定字符串的处理程序,其实就像相当与添加位置限定符,数量限定符,字符想定符来进行范围缩减匹配。2.grep工具: 首先grep就是一个查找工具,然后通过正则表达式完成字符串的搜索。 存在3种限
直接上代码:#mcore.sh #!bin/bash function colour() { case $1 in black_white) echo -e "\033[40;37m" ;; black_green) echo -e "\033[40;32m" ;; black
题目1:1-100求和非递归版本:#!/bin/bash sum=0 while [ $val -le 100 ] do let sum+=val let val++ done echo $sum sum=0 for i in {1..100} do if [&nbs
在shell脚本中我们所有变量的存储形式都是字符串。所以对于字符串的截取来说就变得十分重要了。 而在shell脚本中,如果想要对一个字符串进行指定的截取,有多种方法可以来完成:如下举例均用:STR="hello world my dear sister"${STR#*char} 表示从左开始删除第一个char左边的所有字符,截取右边的字符串#!/bin/bash
一. 关于shellshell,一种壳层与命令行界面,是Unix操作系统下传统的用户和计算机的交互界面。第一个用户直接输入命令来执行各种各样的任务。普通意义上的shell就是可以接受用户输入命令的程序。它之所以被称作shell是因为它隐藏了操作系统低层的细节。同样的Unix下的图形用户界面GNOME和KDE,有时也被叫做“虚拟shell”或“图形shell”。我们Linux操作下的终端,就是关于s
Copyright © 2005-2022 51CTO.COM 版权所有 京ICP证060544号