当前位置:  开发笔记 > 运维 > 正文

如何在普通C中启动线程?

如何解决《如何在普通C中启动线程?》经验,为你挑选了4个好方法。

我在C中使用了fork()来启动另一个进程.如何开始新线程?



1> Commodore Ja..:

既然你提到了fork()我假设你是一个类Unix系统,在这种情况下POSIX线程(通常称为pthreads)是你想要使用的.

具体来说,pthread_create()是创建新线程所需的函数.它的论点是:

int  pthread_create(pthread_t  *  thread, pthread_attr_t * attr, void *
   (*start_routine)(void *), void * arg);

第一个参数是返回指向线程id的指针.第二个参数是线程参数,除非您想要以特定优先级启动线程,否则它可以为NULL.第三个参数是线程执行的函数.第四个参数是执行时传递给线程函数的单个参数.


以下是如何使用它的示例:http://timmurphy.org/2010/05/04/pthreads-in-ca-minimal-working-example/

2> Brannon..:

AFAIK,ANSI C没有定义线程,但有各种库可用.

如果您在Windows上运行,请链接到msvcrt并使用_beginthread或_beginthreadex.

如果您在其他平台上运行,请查看pthreads库(我确信还有其他库).



3> botismarius..:

线程不是C标准的一部分,因此使用线程的唯一方法是使用一些库(例如:Unix/Linux中的POSIX线程,_beginthread/_beginthreadex,如果你想使用该线程的C-runtime或只是CreateThread Win32 API)



4> epatel..:

pthreads是一个好的开始,看看这里

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有