摘要: 看了APUE的chapter15,只重点看了15.10,学习了posix信号量。Posix信号量比起xsi信号量的优点是性能更好,在Linux3.2.0平台上性能提升很大。其中命名信号量使用方法如下。 1、 头文件#include <semaphore.h> 2、 函数: (1)sem_t* sem 阅读全文
posted @ 2018-06-27 19:49 积跬步,致千里 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 学习了apue3rd的第11章,主要讲的是多线程编程。因为线程共享进程的资源比如堆和全局变量,多线程编程最重要的是,使用各种锁进行线程同步。 线程编程首先要学习的三个函数如下: #include <pthread.h> int pthread_create(pthread_t* tidp, cons 阅读全文
posted @ 2018-06-27 19:41 积跬步,致千里 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 看了Linux程序设计4中文版,学习了多线程编程和socket编程。本文的程序参考自Linux程序设计4的第15章。 设计了一个客户端程序,一个服务端程序。使用TCP协议进行数据传输。 客户端进程创建了一个客户端使用的socket,一个socket地址结构体。设置这个socket地址结构体的端口和地 阅读全文
posted @ 2018-06-27 19:35 积跬步,致千里 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 线程和进程之间的联系和区别: 线程拥有自己的线程id,一组寄存器值,调度优先级和策略,线程栈,除此以外,线程共享进程的所有资源,如堆、文件描述符、进程的代码段、全局变量区(静态局部变量、全局变量)。进程是系统资源分配的基本单位,线程是CPU调度的基本单位。 在只有一个线程的情况下,进程和线程非常相似 阅读全文
posted @ 2018-06-27 19:32 积跬步,致千里 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 关于C语言变量是否需要初始化的问题。以前西北工业大学的C语言老师说的是,需要初始化,如果不初始化就使用的话,变量的值是以前遗留在内存中的,是不确定的(这只是针对局部变量的)。C语言全局变量如果没有初始化的话,编译器会他们初始化为0.局部变量则不改动。自己实际测试,在微软的vs2008或2010环境下 阅读全文
posted @ 2018-06-27 19:24 积跬步,致千里 阅读(581) 评论(0) 推荐(0) 编辑