我理解进程和线程之间的区别。我知道用户线程和内核线程之间的区别。进程vs线程(用户vs内核)
问题
你如何在C代码中的任何人?我在C中知道的是如何创建POSIX线程,但是这是用户线程还是内核线程?
任何人都可以为进程,用户线程和内核线程放置一些C代码示例。
有没有任何类型的线程,我没有包括?
我理解进程和线程之间的区别。我知道用户线程和内核线程之间的区别。进程vs线程(用户vs内核)
问题
你如何在C代码中的任何人?我在C中知道的是如何创建POSIX线程,但是这是用户线程还是内核线程?
任何人都可以为进程,用户线程和内核线程放置一些C代码示例。
有没有任何类型的线程,我没有包括?
对此的回答主要取决于您的操作系统。 POSIX线程可以实现为用户线程或内核线程 - 它只是一个API规范。在任何现代Linux系统上,它们都是使用内核线程来实现的。
就低级API而言,UNIX系统调用fork()
会创建一个新进程。在Linux上,系统调用clone()
可用于创建新的内核线程(通过传递CLONE_VM
标志) - 其他操作系统将有其他调用来执行此操作。用户线程的创建完全取决于您正在使用的用户线程库。
有一个tutorial应该有助于线程。你可以使用不同的attr参数给pthread_create来选择用户vs内核。
对于进程,请尝试fork tutorial。