随笔分类 - Linux环境编程
摘要:一、Redis简介: Redis为非关系型数据库,Redis是一个Key-Value存储系统。它支持存储的value类型有:string(字符串),list(链表), set(无序集合),zset(sorted set有序集合)和hash,Redis支持各种不同方式的排序。数据都是缓存在内存中的,它
阅读全文
摘要:linux 环境有提供好的pthread_cond_wait() 和 phread_signal()、pthread_broadcast() windows需要自己封装,利用semophore控制线程等待和释放,先简单谈一下设计好后api该 如何使用。 假设我们封装好条件变量等待函数名字叫做wait
阅读全文
摘要:Windows环境崩溃问题可根据vs调试工具查看,Linux同样可以查看调用堆栈的信息,只是 需要更改Linux设置,使程序崩溃时候产生core文件。然后gdb调试即可。 1产生core文件方法 产生coredump的条件,首先需要确认当前会话的ulimit –c,若为0,则不会产生对应的cored
阅读全文
摘要:最近自己在写一套服务器框架,期间遇到很多问题, 对于Linux或者windows出错情况下可以通过错误码获取错误信息。 为了测试服务器性能,我在客户端开了2000个线程,这样每个线程 都创建socket和服务器通信,连接15个线程,再后来的客户端线程 connect过程中会失败,我另起了一个客户端进
阅读全文
摘要:libevent中提供了一个Hello-world.c 的例子,从这个例子可以学习libevent是如何使用bufferevent的。 这个例子在Sample中 这个例子之前讲解过,这次主要看下bufferevent的使用。 第一步找到main函数 main函数 event_base_dispatc
阅读全文
摘要:Bufferevents and evbuffers Every bufferevent has an input buffer and an output buffer. These are of type "struct evbuffer". When you have data to writ
阅读全文
摘要:Events have similar lifecycles. Once you call a Libevent function to set up an event and associate it with an event base, it becomes initialized. At t
阅读全文
摘要:参考libevent官方提供的文档: http://www.wangafu.net/~nickm/libevent-book/Ref1_libsetup.html 这一篇主要翻译libevent多线程的使用接口和文档。 As you probably know if you’re writing m
阅读全文
摘要:近期学习了线程等待和激活的相关知识。 先介绍几个api: pthread_cond_t表示多线程的条件变量,用于控制线程等待和就绪的条件。 一:条件变量的初始化: 条件变量和互斥锁一样,都有静态动态两种创建方式, 静态方式使用PTHREAD_COND_INITIALIZER常量初始化。 pthrea
阅读全文
摘要:对Linux环境动态库和静态库的一些基础知识做一些总结, 首先总结静态库的编译步骤。 1 先基于.cpp或者.c文件生成对应的.o文件 2将几个.o文件 使用ar -cr命令 生成libname.a文件 libname.a 为静态库, name 为静态库的名字, 可以根据模块功能命名。 举个例子 在
阅读全文
摘要:之前都是手动编译的,最近也学了下makefile相关的知识, 文件结构是这样的在server文件夹里有eventloop.h, eventloop.cpp, networking.h, networking.cpp, api_epoll.h, api_epoll.cpp,以及文件夹main, 在ma
阅读全文