2010-03-31 138 views
0

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

问题

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

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

有没有任何类型的线程,我没有包括?

回答

1

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

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

1

有一个tutorial应该有助于线程。你可以使用不同的attr参数给pthread_create来选择用户vs内核。

对于进程,请尝试fork tutorial