s2: tarsC++
涛歌依旧
毕业后就职于华为和腾讯
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
tars源码分析之27
openssl来了哦原创 2022-07-17 23:50:15 · 3313 阅读 · 0 评论 -
tars源码分析之26
decode相关动作,这个简单:原创 2022-07-17 23:48:19 · 2586 阅读 · 0 评论 -
tars源码分析之25
打包怎么打,看完就明白了:原创 2022-07-17 23:46:55 · 1407 阅读 · 1 评论 -
tars源码分析之22
信号量互斥,怎么写?原创 2022-07-17 23:42:11 · 1225 阅读 · 1 评论 -
tars源码分析之24
参数解析,其实就是字符串的转化,简单:原创 2022-07-17 23:45:03 · 1285 阅读 · 0 评论 -
tars源码分析之21
sha到底是怎么实现的,来看下:原创 2022-07-17 23:33:08 · 1415 阅读 · 0 评论 -
tars源码分析之18
ssl加密管理类:原创 2022-07-10 23:18:49 · 1337 阅读 · 0 评论 -
tars源码分析之16
基本线程类,很简单,不需要多说:原创 2022-07-10 23:15:23 · 1127 阅读 · 1 评论 -
tars源码分析之20
共享内存到底怎么用,没搞清楚的话,去面试很尴尬的,直接看源码:原创 2022-07-10 23:19:25 · 1484 阅读 · 1 评论 -
tars源码分析之19
这个文件太经典了,对网络编程socket感兴趣的你,千万不要错过:原创 2022-07-10 23:19:17 · 1332 阅读 · 2 评论 -
tars源码分析之17
tea可不是茶,而是腾讯采用的一个加密算法,细节不用掌握,知道功能就行:原创 2022-07-10 23:15:53 · 1312 阅读 · 2 评论 -
tars源码分析之14
线程互斥,实现起来不难,一起看下:原创 2022-07-10 23:05:30 · 1206 阅读 · 1 评论 -
tars源码分析之13
线程池是很典型,之前去阿里面试,就让写了一个线程池,来看看:原创 2022-07-10 23:04:32 · 1286 阅读 · 1 评论 -
tars源码分析之15
条件变量,看过unix高级边境编程的都知道啦:原创 2022-07-10 23:05:49 · 1106 阅读 · 1 评论 -
tars源码分析之13
线程池是很典型,之前去阿里面试,就让写了一个线程池,来看看:原创 2022-07-10 23:01:38 · 1290 阅读 · 1 评论 -
tars源码分析之12
读写锁终于来了,一起来看看实现吧,是很典型的:原创 2022-07-10 22:59:06 · 1054 阅读 · 0 评论 -
tars源码分析之11
time provider函数,来看一下,用了单例模式:原创 2022-07-10 22:57:05 · 1181 阅读 · 0 评论 -
tars源码分析之9
动态运行时的类怎么定义,也很直观了:原创 2022-07-03 23:09:30 · 455 阅读 · 1 评论 -
tars源码分析之10
gbk和utf8是你永远绕不开的话题,怎么转化呢?而且,我估计你还踩过坑。反正我踩过。其实很简单,一起来看看代码:原创 2022-07-03 23:10:00 · 663 阅读 · 5 评论 -
tars源码分析之8
在做软件开发时,配置可少不了,我不建议你再写了,直接看如下的代码吧:原创 2022-07-03 23:05:11 · 661 阅读 · 0 评论 -
tars源码分析之7
在笔试面试的时候,最常考一些字符串的问题,可千万不要忽视,如下的函数肯定很眼熟,但你真的会吗?另外,在实际开发中,不要自己重写这些了,直接拿去用就行了:原创 2022-07-03 23:02:55 · 594 阅读 · 1 评论 -
tars源码分析之6
喜欢网络编程的同学,千万不要错过tars中关于socket的部分,来看看客户端操作。真的是非常经典,看看send/recv吧,写得真是严密:原创 2022-07-03 23:00:00 · 549 阅读 · 1 评论 -
tars源码分析之5
cgi的相关实现,一起来看下,还是很常规的:原创 2022-07-03 22:54:27 · 421 阅读 · 1 评论 -
tars源码分析之4
基础buffer的实现,也很简单,大致看看:原创 2022-07-03 22:52:11 · 393 阅读 · 1 评论 -
tars源码分析之3
buffer pool的实现,也非常经典:原创 2022-07-03 22:50:14 · 446 阅读 · 1 评论 -
tars源码分析之2
bitmap就是位图,在处理大数据时必不可少,来看下实现:原创 2022-07-03 22:47:39 · 454 阅读 · 0 评论 -
tars源码分析之1
base64是一个可逆的变换算法,算不上加密,也不是哈希,来看看实现。之前自己也写过:原创 2022-07-03 22:44:51 · 897 阅读 · 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 <iostream>#include <cassert>#include...原创 2018-04-06 20:37:39 · 5180 阅读 · 1 评论 -
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) 2016THL A29 Limited, a Tencent company. All rights reserv...原创 2018-04-06 21:35:18 · 5403 阅读 · 4 评论 -
tars源码漫谈第50篇------tc_logger.h/tc_logger.cpp(log类)
一直想看看真正项目中的打印log的函数是怎样实现的, 要考虑哪些东西, 最近看了tars的tc_logger, 发现复杂性超出了我的想象, 各种控制, 线程, 锁, 看来这不是一个轻松活。 好在对于应用开发来说, 知道怎么设置参数, 怎么正确使用就行了。 tc_logger.cpp不看了, 还是来瞅一眼tc_logger.h:/** * Tencent is pleased...原创 2018-04-06 21:15:48 · 5753 阅读 · 5 评论 -
tars源码漫谈第49篇------tc_mem_vector.h(内存向量/数组)
看了一下tc_mem_vector, 里面实现的是内存向量/数组, 看下:/** * Tencent is pleased to support the open source community by making Tars available. * * Copyright (C) 2016THL A29 Limited, a Tencent company. All righ...原创 2018-04-06 21:14:50 · 5037 阅读 · 2 评论 -
tars源码漫谈第48篇------tc_mem_queue.h/tc_mem_queue.cpp(内存队列)
tc_mem_queue是用内存实现的队列, 源码很简单, 无非就是一个队列而已。 之所以要这么玩, 估计比stl queue的效率更高? 看看源码:/** * Tencent is pleased to support the open source community by making Tars available. * * Copyright (C) 2016TH...原创 2018-04-06 21:05:59 · 5158 阅读 · 2 评论 -
tars源码漫谈第47篇------tc_mem_chunk.h/tc_mem_chunk.cpp(内存块操作)
跟上次介绍的tc_malloc_chunk类似,tc_mem_chunk中也是与内存相关的操作, 涉及到申请, 拷贝, 释放等等等等, 后续tars源码中需要用的时候再来看吧, 这次仅仅看看头文件:/** * Tencent is pleased to support the open source community by making Tars available. * ...原创 2018-04-06 20:40:18 · 5177 阅读 · 1 评论 -
tars源码漫谈第12篇------tc_option.h/tc_option.cpp(命令行解析)
在执行二进制程序的时候, 往往需要给定输入参数, 那么, 二进制程序对应的代码该如何解析这些参数呢? 比如:./a.out --name1=value1 --name2=value2 tc_option就是专门干这个的, 下次就不要自己去解析了。 看看源码:/** * Tencent is pleased to support the open source comm...原创 2018-04-01 10:50:03 · 5426 阅读 · 2 评论 -
tars源码漫谈第23篇------tc_buffer_pool.h/tc_buffer_pool.cpp(内存池操作)
tc_buffer_pool中的TC_Slice是一个内存类, TC_BufferPool是一个内存池类。 涉及到的都是内存的操作, 申请, 释放等。 封装后, 便于统一使用。 看了一下, 有些地方有点绕, 但不难理解, 不需要多说。 来随便看几个函数:TC_Slice TC_BufferPool::Allocate(size_t size){ TC_Sl...原创 2018-04-04 22:47:47 · 4835 阅读 · 3 评论 -
tars源码漫谈第22篇------tc_buffer.h/tc_buffer.cpp(内存操作封装)
buffer就是一段内存,tc_buffer是对基本buffer操作的封装。 通过类来管理_buffer指针, 它指向堆内存, 释放如下: ~TC_Buffer() { delete[] _buffer; } 从如下可以看到, 内存以2倍扩张:inline static std::size_t RoundUp2Power(std::si...原创 2018-04-04 22:44:07 · 4932 阅读 · 3 评论 -
tars源码漫谈第21篇------tc_http.h/tc_http.cpp(http相关操作)
虽然tc_http.h中包含了:#include "util/tc_autoptr.h"#include "util/tc_thread.h"#include "util/tc_timeout_queue.h" 但并没有用到, 先忽略。 TC_URL是对url的管理, 从getDefaultPort中可以看出协议的默认端口:string TC...原创 2018-04-04 22:40:14 · 6174 阅读 · 3 评论 -
tars源码漫谈第20篇------tc_mysql.h/tc_mysql.cpp(mysql API的封装)
tc_mysql类主要实现对mysql.h(mysql的官方API)中操作的封装. TC_DBConf是一个db相关的配置类, 唯一函数是:void loadFromMap(const map<string, string> &mpParam) { map<string, string> mpTmp = mpParam;...原创 2018-04-03 22:21:35 · 5322 阅读 · 2 评论 -
tars源码漫谈第19篇------tc_bitmap.h/tc_bitmap.cpp(位内存操作)
bitmap的概念, 在之前博客中多次提及, 并且给出了代码, 在处理海量数据时, 会有内存优势。想起来了, 我在某面试中, 还被问过这个问题。 tc_bitmap就是专门做bitmap处理的, 看了一下源码, 无非就是bit的set, get, clear操作。看似眼花缭乱, 实则很简单。 tc_bitmap是tars的基础工具, 但tars代码中并没有用到tc_...原创 2018-04-02 23:58:26 · 4905 阅读 · 2 评论 -
tars源码漫谈第18篇------tc_tea.h/tc_tea.cpp(TEA加解密)
tc_tea中实现的是TEA加解密算法, 业界用TEA还是相对较少的, 但查了一下资料, 发现这个TEA算法历史悠久, 且在工程上是安全的。 TEA的实现和使用都比AES要简单, 腾讯开源tars用到了这个算法, 看来腾讯有可能很喜欢这个算法, 并广泛使用。 看一下oi_symmetry_encrypt2, oi是什么意思? 是oicq的意思, 腾讯qq的来源。...原创 2018-04-02 23:28:12 · 5887 阅读 · 1 评论
分享