1.linux“线程” 进程与线程之间是有区别的,不过linux内核只提供了轻量进程的支持,未实现线程模型。linux是一种“多进程单线程”的操作系统。linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。 大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。linux中所谓的“线程”只是在被创建时clone了父进程的资源,因此clone出来的进程表现为“线程”,这一点...
本帖最后由 bsdc 于 2014-07-06 19:14 编辑 最近被人问了个问题,不知道怎么回他。他先问过用户态的了,我告诉他:pipe, msg queue, signal, semaphore,socket之类。 然后他又问我“linux或者其他RTOS内核的进程间通信方式”。从我看过的书,总感觉linux内核的所有进程/线程(没有用户态存储空间)应该只有一个共享的存储空间, 也就是clone的地方都带上CLONE_VM标记的(当然,每个进程应该有其自己的task_struct,系统stack)...
本帖最后由 tpj10 于 2011-12-10 17:23 编辑 一个线程产生数据,放到一个公用的buffer里 另外一个线程处理数据,处理的速度很比产生数据的速度快得多 要求一旦有数据产生,必须在几个微妙之内被处理,应该怎么做? 我现在是让处理数据的线程while死循环判断一个volatile的变量来确定是否有数据等待处理,有则处理,没有则继续循环判断 但是这样会导致CPU无谓的损耗,请教大家有没有好一点的办法? PS: 多核环境,我尝试过用m...
内核同步 根据Harvey M.Deitel等著的操作系统(第三版)的说法,linux内核提供了两种机制进行互斥访问:锁与信号量。 锁 1. 自旋锁 自旋锁禁止抢占,但本身可能导致无限延期、甚至死锁,通常通过抢占锁计数器进行控制。 2. 阅读程序/写程序锁 阅读锁可以被多重持有,写入锁只能被一个程序持有。 3. 顺序锁 有写入程序在等待时,拒绝新的读取程序进入。 内核信号量 计数的信号量, 由等待队列与计数器表示。 进程间通信 1. 信号 ...
内核同步 根据Harvey M.Deitel等著的操作系统(第三版)的说法,linux内核提供了两种机制进行互斥访问:锁与信号量。 锁 1. 自旋锁 自旋锁禁止抢占,但本身可能导致无限延期、甚至死锁,通常通过抢占锁计数器进行控制。 2. 阅读程序/写程序锁 阅读锁可以被多重持有,写入锁只能被一个程序持有。 3. 顺序锁 有写入程序在等待时,拒绝新的读取程序进入。 内核信号量 计数的信号量, 由等待队列与计数器表示。 进程间通信...
是这样的: 做一个进度条, 在从线程里read/write,并将进度传给主线程。如何弄? 我知道进程间是pipe(),线程如何弄? 在linux下线程和进程实现应该不同吧,有没有效率差别? 谢谢
是这样的: 做一个进度条, 在从线程里read/write,并将进度传给主线程。如何弄? 我知道进程间是pipe(),线程如何弄? 在linux下线程和进程实现应该不同吧,有没有效率差别? 谢谢
linux下的C编程实战(四) ――“线程”控制与“线程”通信编程 宋宝华 [email=21cnbao@]21cnbao@[/email] 1.linux“线程” 笔者曾经在《基于嵌入式操作系统VxWorks的多任务并发程序设计》(《软件报》2006年第5~12期)中详细叙述了进程和线程的区别,并曾经说明linux是一种“多进程单线程”的操作系统。linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。大家知道,进程是资源分配的单位,同...