多线程与网络编程

多线程与网络编程

ID:37594530

大小:135.90 KB

页数:31页

时间:2019-05-25

多线程与网络编程_第1页
多线程与网络编程_第2页
多线程与网络编程_第3页
多线程与网络编程_第4页
多线程与网络编程_第5页
资源描述:

《多线程与网络编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、多线程与网络编程Linux多线程开发•线程的概念与多线程的应用•Linux与其他操作系统的多线程的实现•Linux的线程库和基本编程模型•多线程的同步与互斥•线程与LWP•线程局部化存储线程的概念和多线程的应用•可执行代码的最小调度单位•线程间共享内存和其他进程资源•更小的创建和切换开销•应用程序中更好的人机交互•更高效的服务器模型••多线程应用的问题:–共享资源的互斥与同步–系统资源的释放与回收–大量并发线程的创建管理Linux与其他操作系统的线程实现•线程的本质•Windows、Solaris等操作系统的线程实现•Linux下的线程实现•Linux线程模型的效率•用户态的

2、线程与内核线程Linux的线程库和基本编程模型•Pthread简介•多线程的创建和销毁–pthead_create–pthread_cancel–pthread_testcancel•线程的资源和线程可取消点–pthread_detach–pthread_join•例1pthread.c多线程的同步与互斥•多线程的执行同步–pthread_exit–pthread_self–例2exit.c•多线程中的各种互斥锁和事件介绍–线程信号量•pthread_mutex_init,pthread_mutex_destroy•pthread_mutex_lock/try_lock,pt

3、hread_mutex_unlock•锁的释放与异常终止•intoldtype;•pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED,&oldtype);•pthread_cleanup_push(pthread_mutex_unlock,(void*)&mut);•pthread_mutex_lock(&mut);•…•pthread_mutex_unlock(&mut);•pthread_cleanup_pop(0);例3mutex.c•读写锁的概念--pthread_rwlock•线程自旋锁pthread_spin•例4spin.

4、c•线程事件–pthread_cond_init,pthread_cond_destroy–pthread_cond_signal,pthread_cond_broadcast–pthread_cond_wait,pthread_cond_timedwait–需要先获得一个pthread_mutex_t,并上锁:intpthread_cond_wait(pthread_cond_t*restrictcond,pthread_mutex_t*restrictmutex);用法:pthread_mutex_lock(&mutex);pthread_cond_wait(&cond,

5、&mutex);pthread_mutex_unlock(&mutex);......//process通知事件:intpthread_cond_broadcast(pthread_cond_t*cond);intpthread_cond_signal(pthread_cond_t*cond);例5cond.cpp•线程与LWP–再看线程与进程的关系•ps-elf/aHx•pthread_t与tid的关系•如何获得进程对应的LWP的pid•线程本地化存储–本地化存储的概念–如何使用本地化存储–例6tls.c–errno为例的线程安全和非安全全局变量Linux网络编程•Linu

6、x网络编程简介•网络编程相关的基本函数和数据结构•面向连接与非连接的网络传输•客户端网络编程模型•服务器端网络编程模型•网络数据包的抓取•常用网络调试工具的使用•异步IO•Linux网络编程简介–Linux的网络协议栈–BSD套接字概述–网络编程的常见问题:•网络传输中各种异常情况的处理以及传输可靠性问题•网络应用程序的效率问题以及多线程的管理•面向连接与非连接的数据传输的选择•不同协议栈上的通讯•网络上各种体系结构主机之间的数据交互•网络编程相关的基本函数和数据结构–socket的创建–各协议族的地址格式intconnect(intsockfd,conststructsoc

7、kaddr*serv_addr,socklen_taddrlen);structsockaddr{__SOCKADDR_COMMON(sa_);/*Commondata:addressfamilyandlength.*/charsa_data[14];/*Addressdata*/};#define__SOCKADDR_COMMON(sa_prefix)sa_family_tsa_prefix##familytypedefunsignedshortintsa_family_t;每个协议有自己的地址结构

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。