加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux的多线程编程的高效开发经验

发布时间:2016-05-31 02:32:00 所属栏目:Linux 来源:网络整理
导读:简介:本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验, 用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿 插一些 Windo
副标题[/!--empirenews.page--]

简介:本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验, 用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿 插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。

背景

Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会 导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编 程上的问题,并分别引出相关改善的开发经验,用以避免这些的陷阱。我们希望 这些经验可以帮助读者们能更好更快的熟悉 Linux 平台的多线程编程。

我们假设读者都已经很熟悉 Linux 平台上基本的线程编程的 Pthread 库 API 。其他的第三方用以线程编程的库,如 boost,将不会在本文中提及。本文 中主要涉及的题材包括线程开发中的线程管理,互斥变量,条件变量等。进程概 念将不会在本文中涉及。

Linux 上线程开发 API 的概要介绍

多线程开发在 Linux 平台上已经有成熟的 Pthread 库支持。其涉及的多线 程开发的最基本概念主要包含三点:线程,互斥锁,条件。其中,线程操作又分 线程的创建,退出,等待 3 种。互斥锁则包括 4 种操作,分别是创建,销毁, 加锁和解锁。条件操作有 5 种操作:创建,销毁,触发,广播和等待。其他的 一些线程扩展概念,如信号灯等,都可以通过上面的三个基本元素的基本操作封 装出来。

线程,互斥锁,条件在 Linux 平台上对应的 API 可以用表 1 归纳。为了方 便熟悉 Windows 线程编程的读者熟悉 Linux 多线程开发的 API,我们在表中同 时也列出 Windows SDK 库中所对应的 API 名称。

表 1. 线程函数列表

多线程开发在 Linux 平台上已经有成熟的 Pthread 库支持。其涉及的多线 程开发的最基本概念主要包含三点:线程,互斥锁,条件。其中,线程操作又分 线程的创建,退出,等待 3 种。互斥锁则包括 4 种操作,分别是创建,销毁, 加锁和解锁。条件操作有 5 种操作:创建,销毁,触发,广播和等待。其他的 一些线程扩展概念,如信号灯等,都可以通过上面的三个基本元素的基本操作封 装出来。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读