在Linux下有没有线程的概念,是不是在Linux下运行的都是进程。也就是说一个进程只能去创建它的子进程(利用fork),而不能去创建属于它的一个线程。如果能够创建线程的话,如何创建? 我想写一个server端的程序,它要响应不同的client端的请求。如果对每一个请求都创建一个...
全文
回复(10) 2002-01-12 23:55 来自版块 - LINUX&UNIX核心开发
表情
zhengqLinux的并发机制建立在进程之上,内核使用的是sys_fork来创建进程。进程创建时要将父进程的进程控制块(内核中为task结构)全部复制。在Linux中线程的实现分核心线程和用户线程,用户线程由线程库实现,无法参与全局调度,而核心线程由内核实现,可参与全局调度,实际是sys_...(2002-04-19 22:48)
sc_yang其是在现在的应用环境下,server端利用fork()为多个客户端服务的效率还是很高的。我建议就采用fork(),既简单又熟悉。(2002-04-11 17:57)
eastman用户模式和内核模式都可实现线程,但两者具有不同的优缺点,比如说用户模式下的多线程在有阻塞的地方就用的不好,因为同一进程中 的所有线程将都被阻塞,因为内核将他门当作一个运行对象。而内核模式下,会使得对线程的同步以及文件共享等带来复杂性。(2002-03-27 20:30)
luocsLINUX下是有创建线程的函数,直接调用就行了,不过要考虑用线程的时候,有些纯c函数是不安全的如strtok等,client请求server时linux有最大进程数限制,但我感觉瓶井应在通讯而不在server的能力。(一般应用的话)(2002-03-09 08:58)
piggy在Advanced Linux Programming那本书里有很详细的介绍,本站就有下载。(2002-02-09 05:49)
cmdcmdPthread(POSIX thread线程库) 线程库pthread.h(线程库) 编译命令是cc -mt [选项] 源文件 -lpthread ptherad.h 使用线程的步骤: (1)引用库: #include <pthread.h> (...(2002-02-09 04:36)
ramble严格的说,Linux中只有进程和轻量级进程,轻量级进程有 单独的task_struct,但是可以和其他进程共享虚存,信号 处理,文件系统,以及文件管理等资源中的任意一种或者 几种。Linux的pthread最后还是用的clone来实现的线程, clone在内核中同样是使用...(2002-02-04 13:51)
sunsetyang 用fork和pthread的资源占用方面是差不多的。反正在单cpu的环境下使用pthread并不会带来任何效率上的提高。很有可能还会因为用进程模拟线程的时候引入其他的开销。 建议使用fork.在其它的有thread支持的系统上应该优先考虑线程,毕竟进程切换的开销...(2002-01-28 23:41)
alibabapthread线程库(2002-01-17 13:05)
znsoftunix下的fork创建的是轻量级进程,也就是介于线程和进程之间...(2002-01-13 12:19)

返回顶部