关闭

[置顶] 线程池的最优大小

计算密集型应用(CPU密集) 顾名思义就是应用需要非常多的CPU计算资源,I/O在很短的时间就可以完成,而 CPU 还有许多运算要处理。 在计算密集型应用中,线程池的大小应该等同于主机中 CPU 的数量。再添加更多线程将会打断请求的处理,因为线程的上下文切换也会延迟响应时间。非阻塞型 IO 应用将会是 CPU 密集型的,因为在请求得到处理的时候没有线程等待时间。...
阅读(852) 评论(0)

windows条件变量

在我的印象中,一直以为windows的多线程同步机制,也就是同步对象只有四个,临界区,互斥,事件,信号量。而linux的同步对象也是四个,互斥,条件变量,读写锁,信号量。打开windows的同步对象头文件synchapi.h才发现,windows其实也有条件变量和读写锁。而这里我要重点说的是条件变量。在我之前的文章《Linux互斥锁和条件变量》说过了linux下通过互斥锁和条件变量实现生产者消费者模...
阅读(167) 评论(0)

[置顶] libevent多线程使用bufferevent的那些事

void do_accept(struct evconnlistener *listener, evutil_socket_t fd, struct sockaddr *sa, int socklen, void *ctx) { //不使用Nagle算法,选择立即发送数据而不是等待产生更多的数据然后再一次发送 int optval = 1; setsockopt(fd, SO...
阅读(1714) 评论(2)

跨平台的线程封装类

#ifdef WIN32 #include #include #else #include #endif /* #ifdef WIN32 typedef unsigned int(__stdcall *thread_func)(void*); #else typedef void*(*thread_func)(void*); #endif */ class base_thread { p...
阅读(687) 评论(0)

Linux互斥锁和条件变量

#include class thread_lock { public: thread_lock() { pthread_mutexattr_init(&m_mutexatr); //互斥锁重复上锁,不会引起死锁,一个线程对这类互斥锁的多次重复上锁必须由这个线程来重复相同数量的解锁,这样才能解开这个互斥锁,别的线程才能 //得到这个互斥锁 pthread_mutexattr_...
阅读(540) 评论(0)
    个人资料
    • 访问:28156次
    • 积分:770
    • 等级:
    • 排名:千里之外
    • 原创:45篇
    • 转载:0篇
    • 译文:0篇
    • 评论:30条
    联系方式

    公司:深信服科技股份有限公司


    所在地:中国-广东省-深圳市


    QQ交流群:165650716


    文章分类