多线程优点及同步方式
来源:互联网 发布:mac os x lion 10.7 编辑:程序博客网 时间:2024/05/29 03:40
一、多线程优点
1.通常启动一个进程,要为该进程分配独立的地址空间,建立多个数据表来维护进程的代码段、堆栈段和数据段,比较耗费系统资源。一个进程创建多线程可以使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于进程所需空间,而且启动线程花费的时间也比进程花费时间少很多。
2.线程间通讯方便,以为线程之间具有共同的地址空间,共享大部分数据资源
3.提高应用响应速度,将耗时工作放在非UI线程中处理
4.使多CPU系统更加有效,多线程可在不同的CPU上运行
5.改善程序设计结构,易于理解和阅读
二、线程同步的方式
1.互斥量
linux实现方式:
pthread_mutex_t mutex; 创建互斥量
pthread_mutex_init 初始化互斥量,初始化时可设置不同的互斥量属性,来区分互斥量是用于线程间还是进程间
pthread_mutex_lock 申请互斥量
pthread_mutex_unlock 释放互斥量
2.条件变量
linux实现方式:
pthread_cond_t cond; 定义条件变量
pthread_cond_init 初始化条件变量,初始化时可设置条件变量的属性结构,区分条件变量用于线程间还是进程间,通常用于线程间
pthread_cond_wait 使线程阻塞在条件变量上,需与互斥量结合使用
pthread_cond_signal/pthread_cond_broadcast 唤醒线程
3.信号量
信号量本质是一个非负整数,用来控制对公共资源的访问。
linux实现方式:
sem_t sem; 定义信号量
sem_init 初始化信号量,同时可设置信号量用于线程间还是进程间
sem_post 增加资源数量
sem_wait/sem_trywait 获取资源,前者阻塞式,后者非阻塞式
sem_destroy 释放信号量
4.临界区
windows下同步方式,同步速度比较快,但是只能同步同一进程下的多线程
5.事件
- 多线程优点及同步方式
- 多线程的优点及缺点
- Win32多线程同步方式
- linux 多线程同步方式
- Linux多线程同步方式
- linux多线程同步方式
- iOS- 多线程技术的概述及优点
- 多线程及同步
- Linux多线程及同步
- 多线程优点
- 多线程优点
- Java多线程同步的方式
- 多线程几种同步方式
- .net 多线程同步方式总结
- 多线程同步实现的方式
- Linux多线程同步方式总结
- MFC 多线程及线程同步
- MFC 多线程及线程同步
- 如何在阿里云上部署django网站
- HDU-5776 Sum
- python中单引号,双引号,多引号区别
- zkw线段树
- A*,那个传说中的算法
- 多线程优点及同步方式
- 基于递归分割的迷宫生成算法与自动寻路
- 第三题
- 华为OJ 初级:图片整理
- C# 事件
- 浏览器同源政策及其规避方法
- HDU 1847 Good Luck in CET-4 Everybody! (巴什博弈)
- 深入讨论 java类加载器
- HDU-5777 domino