不按顺序吃法,将死锁的“循环等待”条件破坏即可,我的做法是奇数先拿左手筷子,偶数先拿右手筷子。 代码如下 #include <iostream> #include <thread> #include <mutex> #include <vector> #include <set> #inc…
Linux时间操作 UNIX操作系统根据计算机产生的年代把1970年1月1日作为UNIX的纪元时间,1970年1月1日是时间的中间点,将从1970年1月1日起经过的秒数用一个整数存放。 time_t time_t用于表示时间类型,它是long类型。表示从1970年1月1日0时0分0秒到现在的秒数。 time() time()用于获取操作系统当前时间…
先这样 静态库 然后编译成静态库 静态库的制作和使用流程如下: 1)制作静态库 g++ -c -o lib库名.a 源代码文件清单 2)使用静态库 g++ 选项 源代码文件名清单 -L库文件所在的目录名 -l库名 本例的使用过程如下: [wsm@localhost tools]$ g++ -c -o libpublic.a public.cpp […
小米一面,第一次面试没写出算法题ww 面完后找cfd帮忙写出来了 大于等于2时就往下继续拆分,0、1不用在前面套2 #include <iostream> #include <vector> #include <string> #include <unordered_map> using namesp…
10月24号从武汉出发,去了西安、重庆、云南,11月5号回的武汉。算了下,玩了11天半,还是想写点儿记录下这次出门旅行。 零、出发前 暑假前刷抖音,当时很想去西藏。暑假用第一个月的工资买了个相机和配套的。暑假快结束时从hq离职了,这个决定用了勇气、也让我更有了勇气。(其实感觉我的成长也是更有勇气的过程) 之前的找暑假实习就经过了一段比较痛苦的日子,…
采用Reactor模型。I/O 多路复用监听事件,收到事件后,根据事件类型分配(Dispatch)给某个进程 / 线程。
803 项目里面的subproc用到了状态机。上报平台时终端会切换不同的报文,这里就用上了状态机,很妙!这个插件的整体流程我写在《苏标上报协议流程》里面,这篇文章仔细地写下状态机。 整体流程如下: 为什么用状态机 优雅!其实这个插件的功能用switch也可以,但是这样略显臃肿。状态机用到了C++的继承、虚函数,初次看到有些惊艳,原来代码还能这么写!…
将代码改成I/O多路复用时出现了一个bug Bad file descriptor 这里是向已关闭的文件描述符写东西。 出问题的地方是 // 登录客户端的登录报文。 if (ClientLogin(TcpServer) == false) ChldEXIT(0); // 出了ClientLogin这个函数后,TcpServer失效。 // 接收文件…
友元有两种:友元函数 和 友元类。 友元的作用是:在类的成员函数外部直接访问对象的私有成员 友元函数 友元函数内部可以访问该类对象的私有成员。既可以是全局函数、又可以是其它类的函数(public的函数)。 #include<iostream> using namespace std; class CCar; //提前声明CCar类,以便…
两个程序,一个是崩溃后再运行、一个是杀死超时程序。 调度进程 先让1号进程接管,然后由这个被1号进程接管的进程来负责fork子进程,并等待子进程退出。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h&…