上个暑假曾经简单的学习了下Linux程序设计,那个时候就计划着把誉为UNIX编程必须要看的APUE(UNIX环境高级编程 英文全称是Advanced Programming in the UNIX Environment,所以简称为APUE)看一下,还在X宝买了第二版的中文版。而到今年已经有第三版的中文版了,刚好图书馆也有新版,就借了回来,再加上没有打算这么急的去找实习和工作,决定沉下心来,把这本书...
分类:
其他好文 时间:
2015-07-23 15:36:53
阅读次数:
136
环境配置步骤如下。 1、 下载源文件:http://www.apuebook.com/src.tar.gz。 2、 复制src.tar.gz文件到/home/me/mydir/unixl/目录(自建目录)下。 3、 解压缩后生成apue.2e目录文件。 4、 修改文件apue.2e/ Make.de...
分类:
其他好文 时间:
2015-07-14 22:09:20
阅读次数:
174
进程是系统中程序执行和资源分配的基本单位。每个进程都有自己的数据段,代码段和堆栈段,这就导致了进程在进行切换等操作起到了现场保护作用。但是为了进一步减少处理机的空转时间支持多处理器和减少上下文切换开销,进程演化中出现了另外一个概念,这就是线程,也被人称为轻量级的进程。它是一个进程内的基本调度单位。线程是在共享的内存空间中并发的多道执行路径,它们共享一个进程的资源,比如文件描述符和信号处理等。因此,...
分类:
编程语言 时间:
2015-07-12 09:43:26
阅读次数:
148
创建线程实际上就是确定调用该线程函数的入口点,这里通常使用的函数是pthread_create。在线程创建之后,就开始运行相关的线程函数。在该函数运行结束,线程也会随着退出。这是其中退出线程的一种方法,另外一种退出线程的方法就是调用pthread_exit()函数接口,这是结束函数的主动行为。在这里要注意的是,在使用线程函数时,不要轻易调用exit()函数,因为这样会使整个进程退出,往往一个进程包...
分类:
编程语言 时间:
2015-07-12 09:40:26
阅读次数:
180
pthread_create函数的第二个参数,是关于线程属性的设置,这也是今天所有讲述的。这些属性主要包括邦定属性、分离属性、堆栈地址、堆栈大小、优先级。其中系统默认的是非邦定、非分离、缺省1M的堆栈、与父进程同样级别的优先级。在pthread_create中,把第二个参数设置为NULL的话,将采用默认的属性配置。
(1)邦定属性。
在LINUX中,采用的是“一对一”的线程机...
分类:
编程语言 时间:
2015-07-12 09:40:02
阅读次数:
156
线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。
1、互斥锁(mutex)
通过锁机制实现线程间的同步。同一时刻只允许一个线程执行一个关键部分的代码。
int pthread_mutex_init(pthread_mutex_t *mutex,const pthre...
分类:
编程语言 时间:
2015-07-11 09:09:12
阅读次数:
151
一、线程概念
如果进程需要完成多个任务的时候,需要对其进行串行化操作。而如果其中一个任务(比如io操作),造成任务执行的挂起。则可以分解任务,将任务分开执行。
其中的每个任务就是所谓的线程。
线程包含了表示进程内执行环境必需的信息。
进程的所有信息对该进程的所有线程都是共享的。包括可执行的程序文本、程序的全局内存和堆内存、栈以及文件描述符。
二、线程创建
新增的线程可以...
分类:
编程语言 时间:
2015-07-01 18:32:58
阅读次数:
126
strace和ltrace分别对应的是系统调用和库函数调用,
系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底层调用的意思,面向的是硬件。
而库函数调用则面向的是应用开发的,相当于应用程序的api,常见的lib有openssl、libxml等。
前者属于内核层,后者属于用户层,下面有其层次对应图
引用《UNIX环境高级编程》对这两个概念的区别描述如下:...
分类:
其他好文 时间:
2015-07-01 18:23:07
阅读次数:
241
一、wait()函数
当一个进程中调用wait()函数的时候
(1)如果其所有的子程序都还在运行,则阻塞
(2)如果一个子进程已终止,则等待父进程获取其终止状态。
(3)如果没有子进程,则返回错误。
下面的实例中,在父进程中调用wait(),如果子进程还没有运行完毕,则将自己调入阻塞状态。
等待子进程运行结束后,将子进程的资源回收后,自己再运行。
#include
#inc...
分类:
系统相关 时间:
2015-06-28 23:05:44
阅读次数:
193