stpeace的专栏

提升认知 顺势而为

排序:
默认
按更新时间
按访问量

tars源码漫谈第51篇------tc_mmap.h/tc_mmap.cpp(mmap操作的封装)

       tc_mmap是对mmap操作的简单封装, 看下源码:/** * Tencent is pleased to support the open source community by making Tars available. * * Copyright (C) 2016TH...

2018-04-06 21:35:18

阅读数:2722

评论数:0

tars源码漫谈第50篇------tc_logger.h/tc_logger.cpp(log类)

      一直想看看真正项目中的打印log的函数是怎样实现的, 要考虑哪些东西, 最近看了tars的tc_logger, 发现复杂性超出了我的想象, 各种控制, 线程, 锁,  看来这不是一个轻松活。 好在对于应用开发来说, 知道怎么设置参数, 怎么正确使用就行了。     tc_logger....

2018-04-06 21:15:48

阅读数:2735

评论数:0

tars源码漫谈第49篇------tc_mem_vector.h(内存向量/数组)

      看了一下tc_mem_vector, 里面实现的是内存向量/数组, 看下:/** * Tencent is pleased to support the open source community by making Tars available. * * Copyright (...

2018-04-06 21:14:50

阅读数:2672

评论数:0

tars源码漫谈第48篇------tc_mem_queue.h/tc_mem_queue.cpp(内存队列)

     tc_mem_queue是用内存实现的队列, 源码很简单, 无非就是一个队列而已。 之所以要这么玩, 估计比stl  queue的效率更高?     看看源码:/** * Tencent is pleased to support the open source community b...

2018-04-06 21:05:59

阅读数:2681

评论数:0

tars源码漫谈第47篇------tc_mem_chunk.h/tc_mem_chunk.cpp(内存块操作)

       跟上次介绍的tc_malloc_chunk类似, tc_mem_chunk中也是与内存相关的操作, 涉及到申请, 拷贝, 释放等等等等, 后续tars源码中需要用的时候再来看吧, 这次仅仅看看头文件:/** * Tencent is pleased to support the o...

2018-04-06 20:40:18

阅读数:2688

评论数:0

tars源码漫谈第46篇------tc_malloc_chunk.h/tc_malloc_chunk.cpp(内存块操作)

      看了一下, 在tars源码中, 并没有用到tc_malloc_chunk中的类, 所以也不打算详细介绍, 了解一下即可。 cpp文件就不看了, 看下头文件:#ifndef __TC_MALLOC_CHUNK_H #define __TC_MALLOC_CHUNK_H #include...

2018-04-06 20:37:39

阅读数:2691

评论数:0

tars源码漫谈第45篇------tc_thread_pool.h/tc_thread_pool.cpp(利用线程池提高效率)

      在client/server交互操作中, 如果频繁创建和销毁socket,  对系统的性能有影响。 此时, 可以考虑复用, 当资源使用完后, 不要立即释放, 而是放在一个池子中, 直接供下次使用,  我们可以称这个操作为连接池。 这跟缓存的逻辑, 有点类似。      线程也是一样, ...

2018-04-06 17:48:10

阅读数:2696

评论数:0

tars源码漫谈第44篇------tc_thread_queue.h/tc_thread_queue.cpp(线程安全的队列)

      以前, 在Windows中, 自己玩过多线程下的消息队列, 且看tc_thread_queue怎么搞线程安全的队列, 用起来应该很爽。/** * Tencent is pleased to support the open source community by making Tar...

2018-04-06 13:58:53

阅读数:2725

评论数:0

tars源码漫谈第43篇------tc_sem_mutex.h/tc_sem_mutex.cpp(信号量互斥类)

     tc_sem_mutex是对信号量基本操作的封装, 实现信号量互斥锁, 其实没什么好说的, 直接看代码:/** * Tencent is pleased to support the open source community by making Tars available. * ...

2018-04-06 13:28:55

阅读数:2749

评论数:0

tars源码漫谈第42篇------tc_functor.h(仿函数)

      仿函数好懂, 但tc_functor中涉及到的东西, 跟loki库差不多, 不好懂,来看下:#ifndef __TC_FUNCTOR_H #define __TC_FUNCTOR_H #include <memory> #include &...

2018-04-06 13:15:43

阅读数:2742

评论数:0

tars源码漫谈第41篇------tc_timeprovider.h/tc_timeprovider.cpp(计算时间的类)

      一个看似简单的时间操作, 居然被封装成一个牛逼哄哄的类, 来看看TC_TimeProvider      智能指针如下:typedef TC_AutoPtr<TC_TimeProvider> TC_TimeProviderPtr;      ...

2018-04-06 11:16:12

阅读数:2696

评论数:0

tars源码漫谈第40篇------tc_squeue.h(结构化队列)

      看了一下tars的整个源码, 没有发现用到tc_squeue中的TC_SQueue类, 我们也不重点关注。      来简单看一下:private: const static unsigned long ReserveLen = 8; const static unsi...

2018-04-06 11:01:38

阅读数:2715

评论数:0

tars源码漫谈第39篇------tc_autoptr.h(智能指针)

       来看下tc_autoptr, TC_HandleBaseT是类模板, 随后有针对类模板的特化:/** * @brief 智能指针基类. * * 所有需要智能指针支持的类都需要从该对象继承, * * 内部采用引用计数TC_Atomic实现,对象可以放在容器中; ...

2018-04-06 10:39:52

阅读数:2771

评论数:4

tars源码漫谈第38篇------tc_cgi.h/tc_cgi.cpp(http/cgi串的相关操作)

     之前说过tc_http,  现在来说类似的tc_cgi, 主要是cgi相关的操作, 跟http密切相关。     TC_Cgi_Upload是一些简单的操作, TC_Cgi是TC_Cgi_Upload的友元类:/** * @brief cgi上传文件操作,通过该类获取cgi上传的文件信息...

2018-04-06 10:14:54

阅读数:2692

评论数:1

tars源码漫谈第37篇------tc_file_mutex.h/tc_file_mutex.cpp(文件互斥锁)

      文件锁的概念, 应该听说过, 本文我们来看看tc_file_mutex中对文件锁的封装, 有点文件互斥锁的感觉。 其中的TC_FileMutex只能用于进程间加锁,  来看看源码:/** * Tencent is pleased to support the open source ...

2018-04-06 08:47:28

阅读数:2688

评论数:2

tars源码漫谈第36篇------tc_hash_fun.h(非标准哈希)

      tc_hash_fun很搞笑啊,  这个私有的所谓哈希, 真的靠谱么? 我表示质疑, 也有待检验:/** * Tencent is pleased to support the open source community by making Tars available. * *...

2018-04-05 23:56:13

阅读数:2684

评论数:0

tars源码漫谈第35篇------tc_fifo.h/tc_fifo.cpp(命名管道fifo操作封装)

     tc_fifo是对基本fifo操作的封装,  先看看mkfifo函数, man一下:MKFIFO(1) User Commands MKFIFO(1) NAME mkfifo - ...

2018-04-05 23:48:19

阅读数:2715

评论数:0

tars源码漫谈第34篇------tc_shm.h/tc_shm.cpp(共享内存操作的封装)

    在之前的博文中, 我们给过共享内存的代码, 而tc_shm就是对共享内存基本操作的封装, 别无其他, 来看看:/** * Tencent is pleased to support the open source community by making Tars available. ...

2018-04-05 23:34:07

阅读数:2675

评论数:0

tars源码漫谈第33篇------tc_pack.h/tc_pack.cpp(序列化和反序列化)

       看tc_pack这个名字就知道, 这可能涉及到打包操作, 进去看一下, 果然。 其实, 就是序列化和反序列化。       源码中充斥了对 <<和>>的重载, 让使用者感觉到比较爽, 我们来看看如...

2018-04-05 23:26:17

阅读数:2693

评论数:0

tars源码漫谈第32篇------tc_parsepara.h/tc_parsepara.cpp(http式参数的parse)

     最近要开发一个需求, 涉及到http参数的处理, 我居然还自己去写string到map和map到string的转换, 当看到tc_parsepara后, 深感痛心, 原来, tars的基础库早就实现了这些功能, 来看一下:/** * Tencent is pleased to supp...

2018-04-05 23:03:38

阅读数:2670

评论数:0

提示
确定要删除当前文章?
取消 删除