• 20220112_HWQ_01


    2022-01-12  23:28:54  

    • 如何写一个socket  : RAII 资源获取就是初始化,WSAStartup 和WSACleanup 应该设计成类的静态方法,因为他们只需要在类的初始化和退出调用。
    • 类除了保留对外的接口,内部用到的变量和方法对调用者不可见,这种习惯叫pimpl用法。
    • 编译时指定规范: g++ -g -o test  test.cpp -std=c++11
    • 类成员初始化语法:std::initializer_list<T>    ,11
    • 注解   ,17
    • final, oerride ,default , delete  , 11
    • auto , 11
    • for-each, 11
    • ctrl k + s  包围代码
    • 结构化绑定, 17
    • STL 容器方法 emplace 原位构造, 
    • 左值 有变量名+可取地址, 右值:常量
    • std::unique_ptr 引用计数永远是1,拷贝构造和赋值运算符=delete
    • std::shared_ptr 线程共享安全,
    • std::enable_shared_from_this 
    • std::weak_ptr 不控制生命周期的智能指针,协助shared_ptr工作
    • unique_ptr与裸指针大小相同,shared_ptr是unique_ptrr 2倍
    • 智能指针原则:用了智能指针就不要再用裸指针,

    使用CMake管理编译,他可以生成VisualStudio的工程文件。

    使用VisualStudio阅读开源代码 ----- FileZilla源代码, 打开解决方案:Ctrl + Alt + L 

    gdb 调试redis 程序 ,https://github.com/redis/redis.git

    gdb 调试 nginx程序 ,  https://github.com/nginx/nginx.git

    创建线程  pthread_create

    C程序的调用方式是_cdecl   而win的调用线程函数方式要求__stdcall  

    win创建线程 (CRT 运行时C函数库)_beginthreadex    <process.h> 

    win签名CALLBACK 和WINAPI 都是__stdcall

    thread类  <thread>   , 11

    window 平台获取 线程ID:pthread_t   pthread_self();    DWORD  GetCurrentThreadId();

    Linux获取线程ID: pthread_create(&threadid...) ; pthread_self(); syscall(SYS_getid);

    c++11 获取线程ID: 

    等待线程结束 : pthread_join() 

  • 相关阅读:
    XML操作
    C# 相等(==,Equals)
    VS插件 选项卡竖排列
    springcloud版本号
    @EnableDiscoveryClient和@EnableEurekaClient的区别
    在mvn构建时直接将项目jar包做成服务第三方工具
    java引用的强制转型
    java基础类型的byte为长度
    springboot访问服务器本地静态文件的方法
    nginx反向代理和负载均衡的基本配置
  • 原文地址:https://www.cnblogs.com/iamgoodman/p/15796040.html
Copyright © 2020-2023  润新知