我理解进程和线程之间的区别。我知道用户线程和内核线程之间的区别。
问题
您如何用C语言编写它们中的任何一个?我在C中所知道的就是如何创建POSIX线程,但是这个用户线程还是内核线程呢?
有人能为进程、用户线程和内核线程提供一些C代码示例吗?
是否有任何类型的线程我没有包括?
发布于 2010-03-31 11:06:40
答案主要取决于您的操作系统。POSIX线程可以实现为用户线程或内核线程-它只是一个API规范。在任何现代Linux系统上,它们都是用内核线程实现的。
在低级API方面,UNIX系统调用fork()创建了一个新进程。在Linux上,系统调用clone()可以用来创建一个新的内核线程(通过传递CLONE_VM标志)--其他操作系统也会有其他调用。用户线程的创建将完全取决于您正在使用的用户线程库。
发布于 2010-03-31 11:05:58
有一个tutorial应该可以帮助线程。您可以使用与pthread_create不同的attr参数来选择用户与内核。
对于进程,请尝试使用fork tutorial。
https://stackoverflow.com/questions/2552240
复制相似问题