- 博客(6)
- 资源 (1)
- 收藏
- 关注
转载 Linux多线程间通信机制(互斥锁、条件变量、信号量,读写锁)同步与异步(一)
同进程下,所有线程共享对某信号的处理方式,即一个设置,所有有效;多个线程的程序,向某一个线程发送终止信号,则整个进程终止。若当前线程读数据,则允许其他线程读数据,但不允许写,若当前线程写数据,则不允许其他线程读、写数据。成功:0,失败:非零值, 唤醒所有等待cond的线程 ,隐含获取需要的互斥锁。线程信号量类似进程的信号量,主要是使得多个线程访问共享资源时,顺序互斥访问。针对多读者,少写者的情况设定,允许多读,但此时不可写;成功:0,失败:非零值 唤醒等待cond的第一个线程,隐含获取需要的互斥锁。
2020-11-08 23:40:12 750
原创 linux多进程多线程区别,同步与异步(一)
1.进程、线程(1)进程概念进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程序,数据集合和进程控制块三部分组成。程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块包含进程的描述信息和控制信息是进程存在的唯一标志。进程具有的特征:动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消
2020-11-08 23:33:36 564 1
原创 Linux 多进程 .之多进程的创建,僵尸进程,守护进程,及C语言api(fork,getpid,wait等)介绍(一)
(6)共享内存(shared memory):共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问,共享内存是最快的IPC方式,它是针对其他进程间的通信方式运行效率低而专门设计的。线程,它是进程内部的一个实体,是CPU 调度的基本单位,它是比进程更小的能独立运行的基本单位。但是,它可以与同属于一个进程的其他线程 共享进程所拥有的资源。相对进程而言,线程是一个更加接近于代码执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己独立的栈空间,拥有独立的执行序列。
2020-11-08 23:00:10 304
转载 多线程比多进程好?优缺点(六)
在Linux下编程多用多进程编程少用多线程编程。 IBM有个家伙做了个测试,发现切换线程context的时候,windows比linux快一倍多。进出最快的锁(windows2k的 critical section和linux的pthread_mutex),windows比linux的要快五倍左右。当然这并不是说linux不好,而且在经过实际编程之后,综合来看我觉得linux更适合做high performance server,不过在多线程这个具体的领域内,linux还是稍逊windows一点。
2020-11-08 22:45:35 458
转载 Linux 多进程间通信机制.之(管道、信号、共享内存/信号量/消息队列)(一)
采用共享内存进行通信的一个主要好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝,对于像管道和消息队里等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次:一次从输入文件到共享内存区,另一次从共享内存到输出文件。这些情况通常由硬件检测到,将其通知内核,然后内核产生适当的信号通知进程,例如,内核对正访问一个无效存储区的进程产生一个SIGSEGV信号。按上图演示,最后进程B会接收到进程A发送的hello,进程C的world接收不到,因为B和C不在同一类型。
2020-11-08 22:40:06 166
转载 Linux系统调用
转载自:https://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.htmlLinux系统调以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。其中有一些函数的作用完全相同,只是参数不同。(可能很多熟悉C++朋友马上就能联想起函数重载,但是别忘了Linux核心是用C语言写的,所以只能取成不同的函数名)。还有一些函数已经过时,被新的更好的函数所代替了(gcc在链接这些函数时会发出警
2020-11-08 22:21:37 140
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人