Android线程与进程

来源:互联网 发布:域名被通信局撤销 编辑:程序博客网 时间:2024/06/05 21:13

问题

前几天遇见了一个android线程间通信的问题,可怜的我只知道应用层的常见方式,对Linux系统的线程间通讯却不是很了解。

Linux中的线程与进程

Linux在最初是不支持线程的,资源管理的单位是进程,线程思想的出,Linux用实现进程的方式,实现了进程。有一种说法时Linux并不存在严格上的进程与线程的区分。(这部分结论参考自网上的博客,想要深入了解需要看Linux内核的代码)

Linux中的线程与进程通信

其实作为一个程序员理解问题要了解到本质,现在所有的代码,实质上都是计算机硬件提供的加减乘除,存取功能的组合代码。这些组合代码配合上优秀的计算机思想加上大牛们对某些问题的解决方案就形成了软件行业的大千世界。

进程间的通讯

进程间的有很多方法,其实就对应了不同的解决方案。这里只说一种来回应文章最开始提出的问题。这种方式就是——管道。

其实如果没有这种解决方案你自己设计,你会如何处理呢。进程中不共享资源,但是他们在一个系统中执行,自然想到有一个文件来进行中转数据啊。So管道就是这么实现的,当然他的稳定性很高,自然少不了大牛们的修饰和完善,但解决方案的根本就是这个。所以很多看似高深的东西,都是一种巧妙但是并不复杂的解决方案的支撑。当然有些数学算法除外(那是真要智商啊)。

其中有一个问题就是他们之间都不知道这个文件是在哪啊,Bingo!所有进程之间通信依赖于命名管道,简单理解就是一个大家都是知道的文件名,大家来查找它。

虽然管道是文件但是其实他是独立于系统本身的文件系统。(说简单点就是为了通信定制的文件)

说了这多,课

0 0
原创粉丝点击