C语言中的多线程编程

时间:2012-11-22 17:38:52

标签: c multithreading unix

我正在开发一个项目,我必须在C中编写多线程库。我必须编写诸如thread_t_init,thread_t_shutdown,thread_t_create,thread_t_terminate,thread_t_yield等函数。我正在寻找一个好的起点或至少一些建议。无论是某个网站还是仅仅是一个对话,任何事情都会有所帮助。

4 个答案:

答案 0 :(得分:2)

在Unix系统下,主导线程API是 POSIX Threads ,也称为Pthreads。它是每个Unix供应商必须实现的标准API调用集。实际上所有的Unix派生和类Unix操作系统,包括Linux,Solaris,* BSD和其他(因为你没有指定哪一个)提供了这个API的实现。使用Pthreads编写的线程程序在不同的Unices中相当便携。

劳伦斯利弗莫尔国家实验室提供了一套关于不同并行编程技术的优秀教程,包括Pthreads上的一个。

答案 1 :(得分:1)

正在寻找POSIX线程

答案 2 :(得分:1)

请参阅linux clone()系统调用:

http://en.wikipedia.org/wiki/Clone_(Linux_system_call)

这也可能会有所帮助:

Source code of PThread Library?

答案 3 :(得分:0)

据我所知,C没有标准中包含的线程模型,C ++仅在C ++ 11版本中包含一个标准的线程模型。因此,使用线程进行编程与使用外部库是一回事,就像使用C ++ pre-C ++ 11一样,您需要掌握您决定选择的库,在Unix下Pthreads(POSIX线程)图书馆是事实上的标准。

查找有关Pthreads的资源。