ZThread多线程库学习笔记整理三

对于该库的学习和文档资料的整理,我个人把握的主线是以程序实践作为基础,在程序实践的基础上对相关的实现代码进行学习,明确整个库的基本架构层次,学习库的架构设计和库中涉及到的设计思想,以此来提高自己程序结构设计的能力和在代码实现时的设计模式的运用技能。

为了方便对库进行跟踪与调试,我决定在自己部署的ZThread的解决方案中建立两个工程,一个是库生成的工程,一个是test工程,主要是为了测试ZThread的库,方便进行代码跟踪和分析。

具体的工程部署如下:

头文件包含,因为test和zthread在同级目录,所以需要这么设置


库包含目录如下:


依赖库的设置如下:


工程配置完成后,写一段测试代码试一下

#include <iostream>
#include "zthread/Thread.h"
#include "zthread/Runnable.h"
using namespace ZThread;


class aRunnable : public Runnable {
  void run() {
    std::cout << "Hello from another thread" << std::endl;
  }
};

int main() {
  try {
    // Implictly constructs a Task
    Thread t(new aRunnable);
    t.wait();
  } catch(Synchronization_Exception& e) { 
    std::cerr << e.what() << std::endl; 
  }

  std::cout << "Hello from the main thread" << std::endl;

  // Output:
  // Hello from another thread
  // Hello from the main thread
  
  return 0;


}

代码可以在Thread.h的头文件中找到,为了更好的看到输出结果我在编译库的时候加入了NDEBUG宏,没有让库的跟踪日志输出,输出结果如下:(wait保证主线程让子线程执行)


整个线程库基本运行OK,后期继续学习补充!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值