关于tinythreadc

来源:12-9 案例:处理复杂的线程返回结果

sadcloud

2021-01-13

①老师能说下 编写实现tinythread.c 的流程吗,其中需要参阅哪些手册呢?
②比较好奇锁、threadlocal等是怎么实现呢?和Java中的锁、threadlocal有什么关系呢?
③我比较好奇为什么您说c11才制定线程标准的吗,而mingw和mvcs还都没有实现,是因为线程在C中并不实用吗,我感觉Java对线程的支持还是很完备的吧?

问题有点多,谢谢老师~~

写回答

1回答

bennyhuo

2021-01-13

  1. 需要了解操作系统底层的线程 API,tinycthread 只是把 windows 的 thread 和 posix thread 的差异做了屏蔽,按照 C11 标准提供了线程接口。阅读的时候需要查阅相关系统的线程文档,例如 msvc 的 doc 和 Linux 或者 posix 的线程(也就是 pthread)的文档。

  2. 其实操作系统都提供了相应的工具。Java 当中的并发工具基本上也是基于 pthread 之类的操作系统底层的线程机制来实现的,例如 Android 上 Java 的线程就对应于 pthread。这个要自己去翻 java 虚拟机的源码。

  3. mingw 和 msvc 都没有实现 C11 的线程 API,不代表操作系统没有线程的能力。msvc 当中有原生的 Windows 的线程 API,如果不做跨平台的话,其实只要关注平台自己的系统 API 就行。

2
1
sadcloud
非常感谢!
2021-01-13
共1条回复

C语言系统化精讲 重塑编程思想 打造坚实的开发基础

如果通向大牛的道路有捷径,那就是先学好C语言

2208 学习 · 853 问题

查看课程