linux cmd
spch2008
github.com/spch2008
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一场Socket四次握手引发的血案
一场Socket四次握手引发的血案 前奏 Hello Everybody,原谅我是一个标题党。事情是这样的,周末,同事在微信上抛来一个问题,原文如下: 服务端某个服务timewait过多,网上说端口会耗尽,我怎么感觉是fd会耗尽呢,因为一个服务通常只使用一个端口 在记忆的某个角落里,翻出了四次握手的状态图,虽然模模糊糊,但是还是有点印象。原创 2016-07-28 19:56:37 · 3125 阅读 · 4 评论 -
自己动手写线程池之线程
线程封装 pthread_t tid;pthread_create(&tid, NULL, callback, NULL); 最原始的线程创建方式,线程通过回调函数callback来实现不同的功能。这种方式不仅使得线程创建函数散落在代码的各个地方,而且通过函数功能来区分线程有违面向对象概念。接下来,通过面向对象思想将线程进行封装,用户只需要继承线程基类,实现回调函数,即可完成自定义原创 2016-07-08 10:05:31 · 1384 阅读 · 0 评论 -
自己动手写线程池之异常
C语言中,通过函数返回值来获知此次操作的结果。在实现线程池时,采用异常机制。同时,为了能够精确区分抛出异常的类以及对异常的精确处理,在每个类中,都实现一个针对该类定制的异常类。 异常基类 class Exception : public exception{public: explicit Exception(const string &text); Exception原创 2016-07-08 13:15:44 · 500 阅读 · 0 评论 -
自己动手写线程池之锁的管理
锁的裸用 pthread_mutex_t mutex;pthread_mutex_init(&mutex, &mutex_attr);pthread_cond_t cond;pthread_cond_init(&cond, &cond_attr)//////////////////////////////////////////////pthread_mutex_lock(&mutex)原创 2016-07-09 16:43:08 · 940 阅读 · 0 评论 -
自己动手写线程池之线程池实现
线程池工作流 终于来到这了,前面做了若干准备工作,都是为了构建线程池。仿照NGINX线程池模型,绘制了线程池工作流程,如下图所示: 任务 定义任务基类Task,所有用户自定义Task都要继承该类,实现Exec方法。线程从任务队列中获取Task,执行Exec。 class Task{public: virtual void Exec()原创 2016-07-09 16:45:24 · 805 阅读 · 0 评论 -
自己动手写线程池之锁的优化
问题描述 线程池将任务Task添加到工作队列中,该队列使用STL List实现。每次添加任务的时候,都需要获取线程锁,然后操作队列。 template typename Item>void ThreadQueue::Push(const Item &item){ { ThreadLocker::Locker lock(&_locker); _q原创 2016-07-09 16:46:57 · 955 阅读 · 0 评论
分享