
s2: tarsC++
涛歌依旧
毕业后就职于华为和腾讯
展开
-
tars源码分析之27
openssl来了哦原创 2022-07-17 23:50:15 · 2910 阅读 · 0 评论 -
tars源码分析之26
decode相关动作,这个简单:原创 2022-07-17 23:48:19 · 2176 阅读 · 0 评论 -
tars源码分析之25
打包怎么打,看完就明白了:原创 2022-07-17 23:46:55 · 1211 阅读 · 1 评论 -
tars源码分析之22
信号量互斥,怎么写?原创 2022-07-17 23:42:11 · 994 阅读 · 1 评论 -
tars源码分析之24
参数解析,其实就是字符串的转化,简单:原创 2022-07-17 23:45:03 · 1072 阅读 · 0 评论 -
tars源码分析之21
sha到底是怎么实现的,来看下:原创 2022-07-17 23:33:08 · 1181 阅读 · 0 评论 -
tars源码分析之18
ssl加密管理类:原创 2022-07-10 23:18:49 · 1118 阅读 · 0 评论 -
tars源码分析之16
基本线程类,很简单,不需要多说:原创 2022-07-10 23:15:23 · 937 阅读 · 1 评论 -
tars源码分析之20
共享内存到底怎么用,没搞清楚的话,去面试很尴尬的,直接看源码:原创 2022-07-10 23:19:25 · 1253 阅读 · 1 评论 -
tars源码分析之19
这个文件太经典了,对网络编程socket感兴趣的你,千万不要错过:原创 2022-07-10 23:19:17 · 1079 阅读 · 2 评论 -
tars源码分析之17
tea可不是茶,而是腾讯采用的一个加密算法,细节不用掌握,知道功能就行:原创 2022-07-10 23:15:53 · 1018 阅读 · 2 评论 -
tars源码分析之14
线程互斥,实现起来不难,一起看下:原创 2022-07-10 23:05:30 · 968 阅读 · 1 评论 -
tars源码分析之13
线程池是很典型,之前去阿里面试,就让写了一个线程池,来看看:原创 2022-07-10 23:04:32 · 1088 阅读 · 1 评论 -
tars源码分析之15
条件变量,看过unix高级边境编程的都知道啦:原创 2022-07-10 23:05:49 · 925 阅读 · 1 评论 -
tars源码分析之13
线程池是很典型,之前去阿里面试,就让写了一个线程池,来看看:原创 2022-07-10 23:01:38 · 1101 阅读 · 1 评论 -
tars源码分析之12
读写锁终于来了,一起来看看实现吧,是很典型的:原创 2022-07-10 22:59:06 · 852 阅读 · 0 评论 -
tars源码分析之11
time provider函数,来看一下,用了单例模式:原创 2022-07-10 22:57:05 · 971 阅读 · 0 评论 -
tars源码分析之9
动态运行时的类怎么定义,也很直观了:原创 2022-07-03 23:09:30 · 370 阅读 · 1 评论 -
tars源码分析之10
gbk和utf8是你永远绕不开的话题,怎么转化呢?而且,我估计你还踩过坑。反正我踩过。其实很简单,一起来看看代码:原创 2022-07-03 23:10:00 · 574 阅读 · 5 评论 -
tars源码分析之8
在做软件开发时,配置可少不了,我不建议你再写了,直接看如下的代码吧:原创 2022-07-03 23:05:11 · 549 阅读 · 0 评论 -
tars源码分析之7
在笔试面试的时候,最常考一些字符串的问题,可千万不要忽视,如下的函数肯定很眼熟,但你真的会吗?另外,在实际开发中,不要自己重写这些了,直接拿去用就行了:原创 2022-07-03 23:02:55 · 495 阅读 · 1 评论 -
tars源码分析之6
喜欢网络编程的同学,千万不要错过tars中关于socket的部分,来看看客户端操作。真的是非常经典,看看send/recv吧,写得真是严密:原创 2022-07-03 23:00:00 · 452 阅读 · 1 评论 -
tars源码分析之5
cgi的相关实现,一起来看下,还是很常规的:原创 2022-07-03 22:54:27 · 335 阅读 · 1 评论 -
tars源码分析之4
基础buffer的实现,也很简单,大致看看:原创 2022-07-03 22:52:11 · 298 阅读 · 1 评论 -
tars源码分析之3
buffer pool的实现,也非常经典:原创 2022-07-03 22:50:14 · 368 阅读 · 1 评论 -
tars源码分析之2
bitmap就是位图,在处理大数据时必不可少,来看下实现:原创 2022-07-03 22:47:39 · 357 阅读 · 0 评论 -
tars源码分析之1
base64是一个可逆的变换算法,算不上加密,也不是哈希,来看看实现。之前自己也写过:原创 2022-07-03 22:44:51 · 747 阅读 · 0 评论 -
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 · 4976 阅读 · 2 评论 -
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 · 5652 阅读 · 5 评论 -
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 · 5322 阅读 · 4 评论 -
tars源码漫谈第35篇------tc_fifo.h/tc_fifo.cpp(命名管道fifo操作封装)
tc_fifo是对基本fifo操作的封装, 先看看mkfifo函数, man一下:MKFIFO(1) User Commands MKFIFO(1)NAME mkfifo - make FIFOs (named pipes)SYNOPSIS mkfifo [O...原创 2018-04-05 23:48:19 · 4993 阅读 · 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 · 5341 阅读 · 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 · 5084 阅读 · 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 · 5117 阅读 · 1 评论 -
tars源码漫谈第0篇------getting to know tars(初识tars)
一个偶然的机会, 遇到了tars开源框架, 感觉很强大,花了1天的时候,把tars跑起来了, 运行良好,遂打算来研究下这个开源框架。 其实, 称不上高大上研究, 说是自我唠嗑更为合适。 据tars官方介绍: Tars这个名字取自于电影"星际穿越"中的机器人,它是基于名字服务使用Tars协议的高性能RPC开发框架,配套一体化的运营管理平台,并通过伸缩调度,实现...原创 2018-03-31 23:22:17 · 7034 阅读 · 4 评论 -
tars源码漫谈第14篇------tc_encoder.h/tc_encoder.cpp(gbk和utf8的转化)
tc_encoder所涉及到的, 就是编解码, 这里特制utf8<--->gbk的转换, 只要是程序员, 就离不开这个东西。 几乎所有的项目代码中, 都有类似的api, 来看看tc_encoder中的代码:/** * Tencent is pleased to support the open source community by making Tars availab...原创 2018-04-01 12:22:23 · 5237 阅读 · 1 评论 -
tars源码漫谈第17篇------tc_thread_cond.h/tc_thread_cond.cpp(条件变量)
在tc_thread_cond.cpp中有#include "util/tc_timeprovider.h", 这个仅仅是为了获取时间, 先忽略。 TC_ThreadCond这个类是对基本的线程条件基本的api操作的封装, 并没有新意。 来写一个代码, 熟悉下线程的“条件变量”,实现线程同步, 顺便掌握整个TC_ThreadCond:#include <stdio.h&...原创 2018-04-01 19:29:25 · 4843 阅读 · 1 评论 -
tars源码漫谈第15篇------tc_clientsocket.h/tc_clientsocket.cpp(socket的客户端操作封装)
很多时候,要朝对端发请求, 那么你需要的是tc_clientsocket.h/tc_clientsocket.cpp. 之前说过, 在tars中, 几乎没看到select/poll, 因为epoll遮挡了它们的光芒, 虽然在client端编程中完全可以用select/poll. 在tc_clientsocket.h中有#include "util/tc_http.h", 但没有...原创 2018-04-01 13:54:41 · 5210 阅读 · 2 评论 -
tars源码漫谈第16篇------tc_thread_mutex.h/tc_thread_mutex.cpp(互斥锁)
虽然tc_thread_mutex.h中有#include "util/tc_lock.h", 但也仅仅是为了TC_ThreadMutex_Exception, 可忽略。 看看tc_thread_mutex:TC_ThreadMutex::TC_ThreadMutex(){ int rc; pthread_mutexattr_t attr; rc = ...原创 2018-04-01 19:14:44 · 4978 阅读 · 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 · 5712 阅读 · 1 评论