在 Android 的应用开发中,线程之间的通信机制主要是以 Handler 机制为主。我们都知道 Android 中的 UI 更新只能在主线程中执行,通常的做法是,我们在 Activity 中直接 new Handler,通过 handler 发送消息,在 handlerMessage 处理即可。本篇博文就根据源码来具体分析其中工作机制以及源码架构。
Linux系统编程之多路IO转接服务器
本章节主要介绍Linux中高并发服务器下的三种多路IO转接模型:select,poll,epoll。各模型分别从原理,系统函数,实现代码三个方面一一说明。文章内容稍有深度,代码理解不易,需要读者结合代码注释以及参考链接内容,反复比较思考。文章最后,对几种多路IO模型的优缺点进行总结,算是对此章节做的收尾工作。
Linux系统编程之多进程、多线程并发服务器
本章节就服务器的开章,仅介绍多进程,多线程下高并发服务器模型的实现。这两种模型实现简单,逻辑清晰,但同时局限性也很大,受限于系统资源以及文件描述符上限等,后续会就多路IO转接服务器进行进一步分析。
Linux系统编程之Socket编程
本章节主要介绍Linux下如何通过系统提供的API接口实现Socket编程。通过结合之前几篇博文中的内容,包括网络基础,TCP/IP模型以及其之间建议通信的链接细节,从理论到代码完整的贯通,毕竟Socket编程的重要性,对于程序员来说不言而喻了。
Linux系统编程之TCP/UDP协议
本章节集中分析网络编程必备知识TCP,UDP数据报格式,熟悉其原理,优缺点以及通信细节,尤其是对于TCP下的三次握手,状态转换,滑动窗口等复杂机制的理解,为后续Socket编程打下牢牢的基础。
Linux系统编程之网络基础
本章节主要介绍网络基础知识,包括OSI模型,TCP/IP模型,以太网帧、ARP、IP等协议数据包,TCP/IP三次握手等,集中介绍网络编程中遇到的专业名词,为后续Socket编程以及高并发服务器模型大下基础。
Linux系统编程之线程同步
本章节着重介绍多线程下资源同步的问题,之前章节介绍了Linux多线程编程的有关知识,由于多线程下容易产生资源互抢情况,所以必须对共享资源进行统一规划,其涉及到的概念有互斥量,条件变量,信号量,文件锁以及进程间锁。
Linux系统编程之线程
本章节介绍Linux下多线程编程方面的知识,涉及到线程和进程的关系,优缺点,线程基础背景,线程原语以及线程属性等方面内容,后续还会进阶的介绍多线程而引申出来的线程同步问题。让我们更加清晰的了解到多线程编程带来的魅力。
Linux系统编程之守护进程
本章节介绍Linux系统中特殊的进程-守护进程(Daemon),其类似于安卓中后台服务的存在,生存周期足够长,能够长期运行于后台,周期的执行某些任务或事件。其次,在介绍守护进程模型之前,我们还需要了解进程间几个重要的概念,例如控制终端、进程组和会话等。
Linux系统编程之信号后记
前面两章节基本将Linux系统下信号知识都介绍了一遍,这里对信号机制进行补充。虽然信号给我们编程带来了极大的方便,但是其原则还是异步操作,内核在调度进程上不可能像我们预期想象的那样运行,因此会额外带来其他问题,这里就进行统一的阐述。