- 博客(11)
- 收藏
- 关注
原创 Muduo源码Base篇
Muduo异步日志 先来看AsyncLogging类的定义 class AsyncLogging : noncopyable { public: AsyncLogging(const string& basename, off_t rollSize, int flushInterval = 3); ~AsyncLogging() { if (running_) { stop(); }
2021-05-02 10:53:58
204
原创 Muduo源码Base篇
Muduo日志 首先看时间戳类 这是TimeStamp类的定义 class Timestamp : public muduo::copyable, public boost::equality_comparable<Timestamp>, public boost::less_than_comparable<Timestamp> { public: /// /// Constucts an invali
2021-04-26 15:28:41
260
原创 Muduo源码Base篇
Muduo源码Base 无界阻塞队列 class BlockingQueue : noncopyable { public: BlockingQueue() : mutex_(), notEmpty_(mutex_), queue_() { } void put(const T& x) { MutexLockGuard lock(mutex_); queue_.push_back(x); notEmpty_.notify
2021-04-20 16:51:09
384
3
原创 Muduo源码Base篇
Muduo源码Base Thread类 class Thread : noncopyable { public: typedef std::function<void ()> ThreadFunc; explicit Thread(ThreadFunc, const string& name = string()); // FIXME: make it movable in C++11 ~Thread(); void start(); int join();
2021-04-19 11:33:43
195
原创 Muduo源码Base篇
muduo源码Base Mutex类 Condition类 首先看这个类 class noncopyable { public: noncopyable(const noncopyable&) = delete; void operator=(const noncopyable&) = delete; protected: noncopyable() = default; ~noncopyable() = default; }; } // namespace mud
2021-04-15 16:29:13
122
原创 操作系统
##第五章同步 临界区问题 当一个进程在临界区内执行时,其他进程不允许在它们的临界区执行. 第一种 do { 进入区 临界区 退出区 剩余区 }while(true); Peterson解决方案 //变量turn表示哪个进程可以进入临界区 //而数组flag表示哪个进程准备进入临界区 //j=1-i int turn; bool flag[2];//全局数组初始化为false do{ flag[i]=true; turn =j; while(flag[j]&&turn
2020-12-15 20:02:07
206
原创 PAT (Basic Level) Practice1083 是否存在相等的差(C语言实现)
1083 是否存在相等的差 给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差? 输入格式: 输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。 输出格式: 按照“差值 重复次数”的格式从大到小输出重复的差值及其重复的次数,每行输出一个结果。 输入样例: 8 3 5
2020-05-27 09:23:26
272
原创 PAT (Basic Level) Practice1082 射击比赛(C语言实现)
1082 射击比赛 本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军;谁差得最远,谁就是菜鸟。本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟。我们假设靶心在原点(0,0)。 输入格式: 输入在第一行中给出一个正整数 N(≤ 10 000)。随后 N 行,每行按下列格式给出: ID x y 其中 ID 是运动员的编号(由 4 位数字组成);x 和 y 是其打出的弹洞的平面坐标(x,y),均为整数,且 0 ≤ |x|, |y| ≤ 100。题目保证每个运动员的编号不重
2020-05-27 08:52:40
252
原创 PAT (Basic Level) Practice1081 检查密码(C语言实现)
该题较为·简单。。 1081 检查密码 本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点 .,还必须既有字母也有数字。 输入格式: 输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束。 输出格式: 对每个用户的密码,在一行中输出系统反馈信息,分以下5种: 如果密码合法,输出Your password is wan mei.; 如果
2020-05-27 08:39:42
392
原创 PAT (Basic Level) Practice 1080 MOOC期终成绩
1080 MOOC期终成绩 (25分) 对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,必须首先获得不少于200分的在线编程作业分,然后总评获得不少于60分(满分100)。总评成绩的计算公式为 G=(Gmid−term×40%+Gfinal×60%),如果 Gmid−term>Gfinal;否则总评 G 就是 Gfinal。这里 Gmid−term 和 Gfinal 分别为学生的
2020-05-26 11:08:41
200
原创 PTA(Basic Level) 1079:延迟的回文数(C语言实现)
PTA(Basic Level) 1079:延迟的回文数(C语言实现) 给定一个 k+1 位的正整数 N,写成 ak⋯a1a0 的形式,其中对所有 i 有 0≤ai<10 且 ak>0。N 被称为一个回文数,当且仅当对所有 i 有 ai=ak−i。零也被定义为一个回文数。 非回文数也可以通过一系列操作变出回文数。首先将该数字逆转,再将逆转数与该数相加,如果和还不是一个回文数,就重复这个逆转再相加的操作,直到一个回文数出现。如果一个非回文数可以变出回文数,
2020-05-24 17:12:21
527
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人