- 博客(6)
- 收藏
- 关注
原创 Linux进程与线程的比较
进程与线程的关系在Linux 2.6以后,系统使用了一种新的pthread线程库NPTL(Native POSIX Threading Library),但其实系统底层依旧使用轻量级进程(LWP)来实现线程这一机制,所以线程与进程的关系颇为繁杂。 首先要明确的是,某一进程中的所有线程共用同一“进程id”(pid)。但为了管理不同线程对系统资源的使用,这里引入了一个“线程组编号”(tgid)的概念。
2017-08-25 10:29:57 444
原创 Unix网络编程学习日记(四):基于select的单线程半双工socket客户端的实现
select()和pselect()允许程序监控多个文件描述符,等待一个或多个文件描述符变为I/O操作的“就绪”状态。一个“就绪”状态的文件描述符被认为可以接受内核提供的IO操作,比如不被阻塞地“read()”。 有趣的是,Unix的标准输入/输出也是一类文件描述符,可以和socket描述符同时被监听。所以,可以用select监听socket和stdin,保证实时接收网络数据的同时又不阻塞住键盘输
2017-08-15 09:02:30 446
原创 使用Makefile终端参数实现跨平台编译控制
最近做的项目经常需要在x86和arm两个平台上测试,需要使用两套编译器,一套系统自带,一套来自于交叉编译环境。这时就需要为两个平台分别编写Makefile,但颇为不便。查阅资料后得知可以使用make configure调整编译选项,又显牛刀杀鸡。 一种较为简便的方式是在使用make指令时,添加额外参数以改变脚本中某变量的值,配合Makefile中的条件语句ifeq来控制编译过程。CFLAGS+=-
2017-08-07 20:24:25 1476
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人