LT 电平触发 高电平触发 EPOLLIN 事件 数据可读 内核中的socket接收缓冲区 为空 低电平 不会触发 内核中的socket接收缓冲区 不为空 高电平 会触发 EPOLLOUT事件 数据可写 内核中的socket发送缓冲区不满 高电平 内核中的socket发送缓冲区 满 低电平 ET 边沿触发 转换的时候触发 由低电平 -> 高电平 才会 触发 高电平 -> 低电平 触发 下面代码是LT和ET模式的区别 #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <assert.h> #include <stdio.h> #include <unistd.h> #include <errno. 继续阅读 >>


楚东方 18/02/07 14:59:10
使用boost库时,经常会看到如下的类 class A:public enable_share_from_this 在什么情况下要使类A继承enable_share_from_this? 使用场合:当类A被share_ptr管理,且在类A的成员函数里需要把当前类对象作为参数传给其他函数时,就需要传递一个指向自身的share_ptr。 我们就使类A继承enable_share_from_this,然后通过其成员函数share_from_this()返回当指向自身的share_ptr。 以上有2个疑惑: 1.把当前类对象作为参数传给其他函数时,为什么要传递share_ptr呢?直接传递this指针不可以吗? 一个裸指针传递给调用者,谁也不知道调用者会干什么?假如调用者delete了该对象,而share_tr此时还指向该对象。 2.这样传递share_ptr可以吗?share_ptr 这样会造成2个非共享的share_ptr指向一个对象,最后造成2次析构该对象。 boost官方文档中一个非 继续阅读 >>


楚东方 18/02/07 01:18:14
原文链接 I find it easiest to understand move semantics with example code. Let’s start with a very simple string class which only holds a pointer to a heap-allocated block of memory: #include <cstring> #include <algorithm> class string { char* data; public: string(const char* p) { size_t size = strlen(p) + 1; data = new char[size]; memcpy(data, p, size); } Since we chose to manage the memory ourselves 继续阅读 >>


楚东方 18/02/01 16:41:08
lambda表达式定义了一个匿名函数,并且可以捕获一定范围内的变量. 基本用法 [捕获列表] (参数表) 函数选项 -> 返回值类型 {函数体} 例如: auto func = [](int a) -> int {return a*a; } //相当于 int func(int a) { return a*a; } 返回值类型可以省略编译器可以自动推导 在无参数情况下,参数列表也可以省略. 捕获列表 [] 不捕获任何变量 [&] 捕获外部作用域所有变量,并作为引用在函数体中使用.(按引用捕获) [=] 捕获外部作用域中所有变量,并作为副本在函数体中使用(按值捕获) [=] [&] 可以结合使用 例如 [=,&x] 捕获外部作用域中所有变量,x作为引用在函数体中使用. [x] 只按值捕获x [this] 捕获当前类中的this指针,让lambda表达式拥有和当前类成员函数同样的访问权限.如何已经使用 继续阅读 >>


楚东方 18/02/01 16:04:57
线程 #include<thread> 线程的几个重要函数 thread t(func); join(); detach(); get_id(); hardware_concurrency(); 创建一个线程并等待子线程 /************************************************************************* > File Name: test.cpp > Author: chudongfang > Mail: ************************************************************************/ #include<iostream> #include<thread> using namespace std; void func() { cout < 继续阅读 >>


楚东方 18/01/31 15:14:52
一. 背景 Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。但是实际上 ,任何只要某个文件有变化,就要重新构建 的项目,都可以用Make构建。 make只是一个根据指定的Shell命令进行构建的工具。它的规则很简单,你规定要构建哪个文件、它依赖哪些源文件,当那些 文件有变动时,如何重新构建它。 二. Make Make是一个很简单命令. make . //构建当前目录 但先编译哪个文件,哪个文件为哪个文件的依赖,都在一个名为Makefile的文件中描述,接下来看一下Makefile文件. 三. Makefile 3.1组成 <target> : <prerequisites> [tab] <commands> <目标> : <前置条件> [tab] <命令> 上面第一行冒号前面的部分,叫做"目标"(target),冒号后面的部分叫做"前置条件"(pre 继续阅读 >>


楚东方 18/01/12 12:49:41
时间如白驹过隙,转眼间就到了2017年、大三上半学期。这样算来搞ACM也 有一年多的光景了。之前因为一直在准备比赛,没有写比赛经历总结,最近 刚刚打完Final,算是准退役了把。想想也是时候来篇Summary了。^_^~~ 个人比较菜,望各位大佬们凑活着看哦(●'◡'●) 个人相关: 个人简介: 姓名:楚东方 昵称:flytosky2015 学校:西安邮电大学 队伍:破晓(校一队,三名大三同学) 队内职务:队长、主代码手 比赛经历: 时间 比赛 获奖情况 2016年 5月(大一下) 蓝桥杯国赛 B 组 二等奖 2016年10月(大二上) ICPC大连区域赛 铁 2016年11月(大二上) ICPC北京区域赛 铁 2016年12月(大二上) China-final 铁 2017年4 月(大二下) 华为精英挑战赛 西北地区三等奖 2017年5 月(大二下) 蓝桥杯 继续阅读 >>


楚东方 17/12/22 09:02:20
1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 2.关系 一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行. 相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。 3.区别 进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切 继续阅读 >>


楚东方 17/12/21 23:48:08
Graph Reconstruction Let there be a simple graph with N vertices but we just know the degree of each vertex. Is it possible to reconstruct the graph only by these information? A simple graph is an undirected graph that has no loops (edges connected at both ends to the same vertex) and no more than one edge between any two different vertices. The degree of a vertex is the number of edges that connect to it. Input There are multiple cases. Each case co 继续阅读 >>


楚东方 17/12/14 18:49:55
A. Hungry Student Problem time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Ivan’s classes at the university have just finished, and now he wants to go to the local CFK cafe and eat some fried chicken. CFK sells chicken chunks in small and large portions. A small portion contains 3 chunks; a large one — 7 chunks. Ivan wants to eat exactly x chunks. Now he wonders whether he can buy exactly 继续阅读 >>


楚东方 17/12/14 16:05:48