`
aigo
  • 浏览: 2635729 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

linux下多线程 之 pthread_detach(pthread_self())

 
阅读更多

原文:http://blog.csdn.net/trinea/article/details/5191165

 

多线程稍微看了下还能接受没想象中的难,写了个示例程序运行修改运行修改几遍后也大致明白了。

 

写个碰到的问题,记录下自己的技术之路点滴

pthread_detach(pthread_self())

linux线程执行和windows不同,pthread有两种状态joinable状态和unjoinable状态,

如果线程是joinable状态,当线程函数自己返回退出时或pthread_exit时都不会释放线程所占用堆栈和线程描述符(总计8K多)。只有当你调用了pthread_join之后这些资源才会被释放。

若是unjoinable状态的线程,这些资源在线程函数退出时或pthread_exit时自动会被释放。

 

unjoinable属性可以在pthread_create时指定,或在线程创建后在线程中pthread_detach自己, 如:pthread_detach(pthread_self()),将状态改为unjoinable状态,确保资源的释放。或者将线程置为 joinable,然后适时调用pthread_join.

摘自  http://kb.cnblogs.com/a/1285801/

 

其实简单的说就是在线程函数头加上 pthread_detach(pthread_self())的话,线程状态改变,在函数尾部直接 pthread_exit线程就会自动退出。省去了给线程擦屁股的麻烦

分享到:
评论

相关推荐

    Windows可使用的pthread库

    pthread库,全称为Posix Threads,是为遵循Posix标准而设计的一种多线程库,主要应用于类Unix系统,如Linux。然而,由于其广泛的应用和功能强大,开发者也希望能将其应用于非Posix环境,例如Windows系统。"Windows可...

    linux 多进程多线程编程

    Linux 多进程多线程编程是指在 Linux 操作系统下使用 C 语言进行多进程和多线程编程的技术。该技术可以大幅度提高程序的执行效率和响应速度,提高系统的并发能力和资源利用率。 1. 创建缺省线程 在 Linux 系统下,...

    linux中的线程源代码

    在Linux操作系统中,线程是进程的一个执行单元,它们共享同一地址空间,使得多线程编程成为并发处理和优化性能的有效手段。本压缩包“linux中的线程源代码”提供了实现Linux线程功能的源代码,对于理解线程工作原理...

    windows 下的pthread 库

    其中,`pthread`(Posix Threads)是UNIX和类UNIX操作系统上广泛使用的多线程API,它定义了一套标准的接口,使得开发者能够在不同的平台上创建和管理线程。尽管`pthread`最初设计用于符合POSIX标准的操作系统,但...

    Linux pthread相关函数用法说明(包括发生段错误的原因以及对策等)

    根据给定文件的信息,本文将深入探讨Linux下pthread库中几个关键函数的使用方法,并针对“段错误”这一常见问题进行分析与对策建议。 ### 1. pthread_create #### 函数原型 ```c int pthread_create(pthread_t *...

    linux多线程编程.pdf

    Linux下的多线程编程通常基于POSIX线程(pthread)库来实现,这个库提供了创建、同步和管理线程的丰富接口。 从给定的文件内容中,我们可以提取出多个相关的知识点: 1. pthread库的包含与使用:在程序中使用...

    pthread库文档_急速版

    《pthread库文档_急速版》是针对Linux操作系统下进行多线程编程的重要参考资料,它包含了完整的pthread API,方便开发者在不依赖外部网络的情况下快速查阅和学习。本文将深入解析pthread库的相关知识点,帮助读者...

    linux多线程编程指南

    ### Linux多线程编程指南知识点总结 #### 一、多线程基础介绍 - **定义多线程术语:** - **线程(Thread)**:进程内的一个执行单元,是CPU调度的基本单位。 - **并发(Concurrency)**:多个任务同时进行的概念,但...

    线程基本编程——线程函数大全.doc

    线程编程是操作系统中的一种重要概念,它允许在同一个进程中执行多个线程,从而提高系统的并发性和效率。线程编程需要使用一些特殊的函数来创建、管理和控制线程的生命周期。在本文中,我们将总结线程基本编程中的...

    linux多线程手册

    ### Linux多线程手册知识点详解 #### 一、多线程基础介绍 ##### 定义多线程术语 - **线程**:是进程中的一个执行单元,它共享进程的资源,但拥有独立的栈和寄存器上下文。 - **多线程**:指在一个进程中同时运行...

    日常记录学习,基础知识,学习笔记

    在编写多线程程序时,合理地使用`pthread_self()`、`pthread_join()`和`pthread_detach()`,以及妥善处理端口冲突,可以有效地优化程序性能并避免资源浪费。同时,熟悉这些基本工具和概念,也有助于排查和解决实际...

    Linux下多线程技术分析及应用.pdf

    《Linux下多线程技术分析及应用》这篇文章深入探讨了在Linux操作系统中如何高效地实现多线程技术。Linux下的多线程不同于传统的进程创建,它通过克隆(`clone`)系统调用来创建线程,这种方法显著降低了CPU开销和...

    多线程程序设计forLinux.pdf

    这里提到的几个函数,包括`pthread_equal`、`pthread_self`、`pthread_create`、`pthread_join`、`pthread_exit`、`pthread_detach`和`pthread_cancel`,都是编写多线程程序中不可或缺的部分。 在部分内容中,`...

    linux多线程设计及示例

    本文将深入探讨Linux环境下多线程的设计、创建、管理和相关属性。 1. **线程创建** 使用`pthread_create`函数可以创建一个新的线程。这个函数需要四个参数:线程标识符的指针,线程属性(默认为NULL,表示使用默认...

Global site tag (gtag.js) - Google Analytics