![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
进程与线程
文章平均质量分 78
进程与线程
Hardy20200507
树立终生学习理念,付诸行动。
展开
-
Linux线程同步-线程锁
一、线程同步的概念 线程同步?怎么同步?一起运行?一起停止?我当年听说线程同步这个词的时候,也是一头雾水。 在人们的日常生活中的锁大概有两种:一种是不允许访问;另一种是资源忙,同一时间只允许一个使用者占用,其它使用者必须要等待。 1)不允许访问的锁容易理解,就像每家每户的门锁,不允许外人进入。 2)第二种锁,例如火车上的厕所,它是公共的,空闲的时候任何人可以进入,人进去以后就会把它锁起来,其它的人如果要上厕所,必须等待解锁,即里面的人出来。还有红绿灯,红灯是加锁,绿灯是解锁。 对多线程来说,资源是共享的,基转载 2021-04-07 14:01:00 · 103 阅读 · 0 评论 -
Linux进程通信
进程的数据空间是独立的,私有的,不能相互访问,但是在某些情况下进程之间需要通信来实现某功能或交换数据,包括: 1)数据传输:一个进程需要将它的数据发送给另一个进程。 2)共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。 3)通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如通知进程退出)。 4)进程控制:一个进程希望控制另一个进程的运行。 一、进程通信 进程通信的方式大概分为六种。 1)管道:包括无名管道(pipe)及命名管道(named原创 2021-04-02 10:03:28 · 98 阅读 · 0 评论 -
Linux多进程
一、进程的概念 什么是进程?进程这个概念是针对系统而不是针对程序员的,对程序员来说,我们面对的概念是程序,当输入指令执行一个程序的时候,对系统而言,它将启动一个进程。 进程就是正在内存中运行中的程序,Linux下一个进程在内存里有三部分的数据,就是“代码段”、”堆栈段”和”数据段”。”代码段”,顾名思义,就是存放了程序代码。“堆栈段”存放的就是程序的返回地址、程序的参数以及程序的局部变量。而“数据段”则存放程序的全局变量,常数以及动态数据分配的数据空间(比如用new函数分配的空间)。 系统如果同时运行多个相转载 2021-04-02 09:31:26 · 74 阅读 · 0 评论 -
不同线程之间访问共享变量
pthread_mutex_t 和 pthread_cond_t 配合使用的简要分析 1.原理 假设有两个线程同时访问一个全局变量 n,这个全局变量的初始值等于0。 Int n = 0 ; 消费者线程 A 进入临界区,访问 n,A 必须等到 n 大于 0 才能接着往下执行,如果 n== 0,那么 A 将一直等待。 还有一个生产者线程 B,B 进入临界区,修改 n 的值,使得 n >0,当 n > 0 时,B 通知等待 n > 0 的消费者线程A。A 被 B 通知之后就可以接着往下执行了。转载 2021-03-18 19:22:50 · 1534 阅读 · 0 评论