当前位置: 技术问答>linux和unix
unix下有多线程的概念吗,与fork的子进程有什么区别?
来源: 互联网 发布时间:2016-02-11
本文导语: 如题 | 在UNIX中,一个进程让另外实体进行某项事务而采取的操作为fork的一个子进程,子进程只是将父进程的数据区拷贝一份到自己的数据区。 在符合POSIX标准的UNIX操作系统下,同一个进程的...
如题
|
在UNIX中,一个进程让另外实体进行某项事务而采取的操作为fork的一个子进程,子进程只是将父进程的数据区拷贝一份到自己的数据区。
在符合POSIX标准的UNIX操作系统下,同一个进程的线程之间共享进程指令、大多数数据(线程私有数据除外)、信号处理方式、进程运行环境
参考:
http://www.joxue.com/kepu/12007.html
在符合POSIX标准的UNIX操作系统下,同一个进程的线程之间共享进程指令、大多数数据(线程私有数据除外)、信号处理方式、进程运行环境
参考:
http://www.joxue.com/kepu/12007.html
|
unix下有多线程的概念吗,与fork的子进程有什么区别?
---------------------------------------------
有多线程的概念。unix下的线程有两种实现方式,分别是pthread(POSIX thread,使用libthread实现)和kthread(kernel thread,内核模拟实现,使用fork和clone系统调用,linux kernel 2.2之前的pthread也是用这种方式实现),pthread的实现和内核的实现方式有关,比如solaris支持多对多线程,即可以用多个内核线程管理若干个用户线程,这与linux kthread有根本的差别。lz可以看看操作系统的大学教材。
---------------------------------------------
有多线程的概念。unix下的线程有两种实现方式,分别是pthread(POSIX thread,使用libthread实现)和kthread(kernel thread,内核模拟实现,使用fork和clone系统调用,linux kernel 2.2之前的pthread也是用这种方式实现),pthread的实现和内核的实现方式有关,比如solaris支持多对多线程,即可以用多个内核线程管理若干个用户线程,这与linux kthread有根本的差别。lz可以看看操作系统的大学教材。
|
这个不同的unix不一样,有的unix把线程当成一个轻量级的进程,这时候线程就约等于进程
而有的unix还有线程的概念,一个进程可以pthread_create出多个线程,具体可以通过test程序打印出pthread_create和fork的pid和ppid看到。
而有的unix还有线程的概念,一个进程可以pthread_create出多个线程,具体可以通过test程序打印出pthread_create和fork的pid和ppid看到。
|
Solaris操作系统内核以线程为基本的调度单位,用户程序应该不需要pthread库来实现多线程。
|