第8章 嵌入式Linux多线程编程.ppt

pthread_cond_init函数 条件变量的结构为pthread_cond_t,函数pthread_cond_init()被用来初始化一个条件变量。它的原型为: int pthread_cond_init (pthread_cond_t * cond, __const pthread_condattr_t * cond_attr) 其中cond是一个指向结构pthread_cond_t的指针 cond_attr是一个指向结构pthread_condattr_t的指针。结构pthread_condattr_t是条件变量的属性结构 注意:条件变量只有在未被使用时才能重新初始化或被释放。 释放一个条件变量的函数为pthread_cond_ destroy(pthread_cond_t cond)。  pthread_cond_wait函数 使线程阻塞在一个条件变量上。 函数原型:extern int pthread_cond_wait (pthread_cond_t *__restrict__cond, pthread_mutex_t *__restrict __mutex) 线程解开mutex指向的锁并被条件变量cond阻塞。线程可以被函数pthread_cond_signal和函数pthread_cond_broadcast唤醒 但是要注意的是,条件变量只是起阻塞和唤醒线程的作用,具体的判断条件还需用户给出,例如一个变量是否为0等等, 线程被唤醒后,它将重新检查判断条件是否满足,如果还不满足,一般说来线程应该仍阻塞在这里,等待被下一次唤醒。这个过程一般用while语句实现。 * * .conf 配置文件,又是也用.cfg .lock 锁(Lock)文件,用来判定程序或设备是否正在被使用 .rpm RedHat用来安装软件的软件包管理器文件 .pl Perl脚本 .py Python 脚本 .so 库文件 .sh shell脚本 .tcl TCL脚本 .au 音频文件 .gif GIF 图像文件 .html/.htm HTML文件 .png PNG(Portable Network Graphic,可移植网络图形)文件 .ps PostScript文件,为打印而格式化过的文件 .xpm 图像文件 .bz2 使用bzip2压缩的文件 .gz 使用gzip压缩的文件 .tar 使用tar归档的文件 .tbz 使用tar和bzip压缩的文件 .tgz 使用tar和gzip压缩的文件 .zip 使用ZIP压缩的文件,MS-DOS中较常见 察看一个没有扩展名的文件的类型,我们可以使用file命令, file filename * .conf 配置文件,又是也用.cfg .lock 锁(Lock)文件,用来判定程序或设备是否正在被使用 .rpm RedHat用来安装软件的软件包管理器文件 .pl Perl脚本 .py Python 脚本 .so 库文件 .sh shell脚本 .tcl TCL脚本 .au 音频文件 .gif GIF 图像文件 .html/.htm HTML文件 .png PNG(Portable Network Graphic,可移植网络图形)文件 .ps PostScript文件,为打印而格式化过的文件 .xpm 图像文件 .bz2 使用bzip2压缩的文件 .gz 使用gzip压缩的文件 .tar 使用tar归档的文件 .tbz 使用tar和bzip压缩的文件 .tgz 使用tar和gzip压缩的文件 .zip 使用ZIP压缩的文件,MS-DOS中较常见 察看一个没有扩展名的文件的类型,我们可以使用file命令, file filename 第8章 嵌入式Linux多线程编程 目的要求:了解线程的分类。理解多线程处理机制。掌握Linux线程的概念;多线程编程同步。 重点难点:嵌入式Linux多线程程序的实现. 进程与线程(一) 使用多线程的理由之一是和进程相比,它是一种非常节俭的多任务操作方式。 在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种昂贵的多任务工作方式。 而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。 进程与线程(二) 使用多线程的理由之二是线程间方便的通信机制。 不同的进程具有独立的数据空间,要进行数据的传递只能通过通信的方式进行 同一进程下

文档评论(0)

1亿VIP精品文档

相关文档