进程vs线程(用户vs内核)

时间:2010-03-31 10:56:40

标签: c multithreading process pthreads

我理解进程和线程之间的区别。我知道用户线程和内核线程之间的区别。

问题

你如何用C代码编写任何代码?我在C中所知道的是如何创建POSIX线程,但这是用户线程还是内核线程?

任何人都可以为进程,用户线程和内核线程提供一些C代码示例。

我没有包含任何类型的帖子吗?

2 个答案:

答案 0 :(得分:1)

有一个tutorial应该有助于线程。您可以使用不同的attr参数来pthread_create来选择user vs kernel。

对于流程,请尝试fork tutorial

答案 1 :(得分:1)

这个问题的答案主要取决于您的操作系统。 POSIX线程可以实现为用户线程或内核线程 - 它只是一个API规范。在任何现代Linux系统上,它们都是用内核线程实现的。

就低级API而言,UNIX系统调用fork()会创建一个新进程。在Linux上,系统调用clone()可用于创建新的内核线程(通过传递CLONE_VM标志) - 其他操作系统将有其他调用来执行此操作。创建用户线程将完全取决于您正在使用的用户线程库。