我在C中使用了fork()来启动另一个进程.如何开始新线程?
既然你提到了fork()我假设你是一个类Unix系统,在这种情况下POSIX线程(通常称为pthreads)是你想要使用的.
具体来说,pthread_create()是创建新线程所需的函数.它的论点是:
int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg);
第一个参数是返回指向线程id的指针.第二个参数是线程参数,除非您想要以特定优先级启动线程,否则它可以为NULL.第三个参数是线程执行的函数.第四个参数是执行时传递给线程函数的单个参数.
AFAIK,ANSI C没有定义线程,但有各种库可用.
如果您在Windows上运行,请链接到msvcrt并使用_beginthread或_beginthreadex.
如果您在其他平台上运行,请查看pthreads库(我确信还有其他库).
线程不是C标准的一部分,因此使用线程的唯一方法是使用一些库(例如:Unix/Linux中的POSIX线程,_beginthread/_beginthreadex,如果你想使用该线程的C-runtime或只是CreateThread Win32 API)
pthreads是一个好的开始,看看这里