当前位置: 首页 > news >正文

Todo list

C++:

1、vector的erase()实现,使用时注意事项,项目中遇到的bug。和remove的区别

2、vector swap()的用于修整空间?为什么不用clear(),因为clear()只是无法保证内存回收。

3、智能指针的用法shared_ptr,unique_ptr,weak_ptr

4、深拷贝浅拷贝概念及区别

5、关键字volatile的意义,多线程中的使用?因为寄存器是各个线程间私有的,编译器优化时会将变量从内存读出,放到寄存器,然后下次直接从寄存器读取这个变量(如果两次操作间没人改变这个变量的话,但是其他线程会改变这个变量)。

6、explicit和implicit (done)

7、指针和引用的区别

8、拷贝构造函数和=运算符重载区别

9、C++中的显式类型转换:static_cast、dynamic_cast、reinterpret_cast和const_cast的含义、使用场景

10、map的实现(rb_tree),和unordered_map的区别

 

C++练习:

  • 用C++实现一个BigInt,支持128位的整形的加减乘除的操作。 https://github.com/guhowo/test/tree/master/BigInt
  • 用C++封装一个数据结构的容量,比如hash table。
  • 用C++封装并实现一个智能指针(一定要使用模板)。

 

线程:

  • 线程和进程的区别,什么时候用进程,什么时候用线程
  • 线程池和多线程
  • IO复用之select和epoll
  • 线程安全、可重入
  • 多线程遇到的坑:基类构造函数返回了this指针,派生类的构造函数还没执行完,其他线程就已经获得了残缺的this。

项目:

1、ZeroTierOne的架构

2、ZT的多线程和多进程(使用的线程池,怎么实现,为什么)

3、使用到的设计模式(Topology是单例模式,。。。工厂模式。。抽象工厂模式)

4、如何着手开源项目(review源码->注释掉加密压缩函数->抓包->对着代码分析报文格式->一共有XXX种报文,逐一分析)

5、select和epoll的区别。详述IO复用

6、为什么使用UDP和不使用TCP传输,应用层如何保证数据的可靠传输

7、项目中遇到的问题,如何解决的

 

 

疑惑:

1、IO复用的本质是什么?

2、多线程、多进程的区别?什么时候用线程,什么时候用进程?有什么问题是多线程解决不了,要用进程的。

3、多线程和线程池的使用场景(结合短连接长链接)

4、zt中多线程下是怎么给每个请求分配IP而保证不重复的?

转载于:https://www.cnblogs.com/howo/p/8392797.html

相关文章:

  • UVa-1588 Kickdown(换低档装置)
  • 大数据学习线路整理
  • Unity Android 5.6版本Resources.Load效率的问题
  • SQL——自定义的fn_Split函数
  • [js]js设计模式小结
  • 创建链接服务器
  • 每天一杯C_C89、C99、C11等之C语言标准
  • 如何禁止windowsxp启动时检测硬盘?
  • [TS] Class Properties Public, Private and Read Only Modifiers
  • JavaScript高级程序设计(第3版)pdf
  • head first 设计模式pdf
  • codeforce 140A - New Year Table
  • 微信小程序------代码构成
  • 斐波那契数列集锦
  • java学习书籍推荐
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Angular 响应式表单之下拉框
  • CentOS6 编译安装 redis-3.2.3
  • css布局,左右固定中间自适应实现
  • Gradle 5.0 正式版发布
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • SpiderData 2019年2月13日 DApp数据排行榜
  • SpiderData 2019年2月23日 DApp数据排行榜
  • spring学习第二天
  • v-if和v-for连用出现的问题
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 关于for循环的简单归纳
  • 解析 Webpack中import、require、按需加载的执行过程
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 物联网链路协议
  • 小而合理的前端理论:rscss和rsjs
  • 做一名精致的JavaScripter 01:JavaScript简介
  • Java总结 - String - 这篇请使劲喷我
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ###C语言程序设计-----C语言学习(3)#
  • #git 撤消对文件的更改
  • $forceUpdate()函数
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (02)Hive SQL编译成MapReduce任务的过程
  • (27)4.8 习题课
  • (c语言)strcpy函数用法
  • (ZT)出版业改革:该死的死,该生的生
  • (阿里云万网)-域名注册购买实名流程
  • (力扣)1314.矩阵区域和
  • (五)IO流之ByteArrayInput/OutputStream
  • (小白学Java)Java简介和基本配置
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)【Hibernate总结系列】使用举例
  • (转)视频码率,帧率和分辨率的联系与区别
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)