月度归档:2020年04月

设计模式

Last Updated on 2020年8月1日

For C/C++ user

很多设计模式相关的资料都是用Java来描述的,有必要简单补充一下JavaC++OOP技术层面上的区别

  • Java不支持任何形式的运算符重载
  • Java明确区分接口和类,类只能从一个类派生,但是一个类可以实现多个接口
  • 在Java中,所有方法默认是虚(virtual)的
  • 对CPP而言,
Read More

QT5编程基础

QT Module中的Qt Core和Qt GUI是唯二有必要仔细学习的部分, 这两部分涉及了QT的所有核心功能, 其余部分都可以在此基础上现学现卖.

本文主要介绍QT中比较重要的机制,其他知识相对来说都很独立,可以直接现学现用.

QT开发基础

  • Qt的很多特性都使用到了thread_local变量, 在多线程环境中,与QObject相关的功能只有两种保险的策略.
      1. 不直接跨线程使用QObject对象
      1. QObject
Read More

SomeCpp

Last Updated on 2020年12月10日

零碎知识点

  • fflush仅仅是为了输出而设计的, 标准中并没有说明它对输入缓冲的效果.
  • 一元运算符和=是右结合的,这和<<是完全不同的,a=b=c意味着a=(b=c),b=c将先执行
  • C++11后引入了thread_local
Read More

多线程编程-杂

Last Updated on 2020年7月20日

重要的两个类型BlockingQueueCountDownLatch

  • 在我目前有限的实践中,这两个类型及其简单变种解决了至少90%的问题.
  • 这两个类的实现代码都非常简单.
  • BlockingQueue主要用于在线程之间传递数据.
  • CountDownLatch主要用于多个线程的简单同步控制.例如,Thread Fence (类似于CUDA的__syncthreads) 就可以通过
Read More