- 浏览: 271656 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (263)
- mysql (5)
- boost (6)
- 工具 (10)
- IT生活 (7)
- 多线程 (3)
- Ruby (15)
- php (2)
- MongoDB (39)
- 移动互联网 (2)
- 测试 (8)
- c++ (28)
- 书 (1)
- 网站 (3)
- 网络编程 (14)
- 开源软件 (1)
- 分布式计算 (1)
- 得得得 (1)
- php,wordpress (1)
- error (5)
- 编译 (2)
- 学习 (1)
- 杀毒软件 (1)
- dd (0)
- linux (21)
- 数据库 (1)
- STL (1)
- c++/c (5)
- 软件设计 (1)
- 操作系统 (4)
- 库 (2)
- win32 (1)
- s (0)
- openssl (1)
- perl (2)
- debug (1)
- windows (4)
- python (12)
- windows 防火墙 (1)
- vs (1)
- vim (2)
- vc (1)
- 浏览器插件的危害 (1)
- curl (0)
- 判断手机号码合法性的库 (0)
- 地址备注 (0)
- 安装 File::Slurp (1)
- cenos (2)
- shell (1)
- linunx (1)
- internet (1)
- software (1)
- widows (1)
- linux io (1)
- nginx (2)
- 算法 (2)
- google (1)
- protobuf (2)
- tengine (1)
- tools (1)
- lua (2)
- liunx (1)
- vcard (1)
- lua-iconv (1)
- 网络 (2)
- teat (0)
- ldconfig linux (0)
- awk (0)
- grep (0)
- windws (2)
- linux 命令 (1)
- tcp dump (1)
- vmware (1)
- question2answer (2)
- mongdb (1)
- 正则 (1)
- OCR (2)
- Windows Server (1)
最新评论
多线程稍微看了下还能接受没想象中的难,写了个示例程序运行修改运行修改几遍后也大致明白了。
写个碰到的问题,记录下自己的技术之路点滴
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线程就会自动退出。省去了给线程擦屁股的麻烦
转自: http://blog.csdn.net/Lethe1989/article/details/5191165
发表评论
-
Linux的IO性能监控工具iostat详解
2016-09-20 14:37 323$iostat -d -k 1 10 #查看TPS和吞吐量信息 ... -
CentOS 7.0,启用iptables防火墙
2016-09-13 21:55 418http://www.open-open.com/lib/vi ... -
Linux下查看系统版本号信息的方法
2016-06-14 15:24 392一、查看Linux内核版本命令(两种方法): 1、cat / ... -
linux 发布系统
2016-04-13 11:03 0/etc/webshell.cfg /etc/rsyncd.c ... -
bash
2016-01-14 11:29 0#/bin/bash for d in {20151001. ... -
当安装了libiconv环境下安装lua-iconv 会出现报错 /usr/local/lib/lua/5.1/iconv.so: undefined symb
2016-01-13 11:47 2042转自: http://bbs.iresty.com/topic ... -
ldconfig
2016-01-13 11:15 0sudo ldconfig ldconfig -p | gre ... -
libconv--unicode -> utf-8
2016-01-02 17:30 483http://savannah.gnu.org/project ... -
配置iptables
2016-06-02 15:18 381cd /etc/sysconfig 备份iptables文件: ... -
linux下的unicode utf
2015-12-22 19:22 0example: http://www.gnu.org/sof ... -
用gcc编译生成动态链接库*.so文件的方法
2015-12-18 14:28 845原文地址:/etc/ld.so.confh ... -
Putty远程登录VMware虚拟机Linux(Ubuntu)
2015-12-10 10:23 918http://www.linuxidc.com/Linux/2 ... -
解决vmware安装centos,网络不通的问题
2015-11-23 11:03 592在终端输入: nmcli dev status查看网卡状态 我 ... -
linux 抓包
2015-11-10 18:52 349tcpdump port 80 -x -s 0 -nn -i ... -
linux socket
2015-08-06 17:58 495epoll_create, epoll_ctl和epoll_w ... -
取消私钥密码
2015-07-20 19:11 629http://www.au92.com/archives/re ... -
liinux操作记录
2015-07-20 15:49 01. 远程连接ssh 私钥保存地址.ssh 2. 查看文件ls ... -
secureCRT 下载上传文件
2015-07-16 18:06 486sz用法: 下载一个文件 sz filename ... -
iptables
2015-07-13 16:17 515转自: http://www.cnblogs.com/jemb ... -
awk
2015-02-11 09:53 643http://coolshell.cn/articles/90 ...
相关推荐
Linux下的多线程编程通常遵循POSIX标准(Portable Operating System Interface),特别是关于线程管理的部分(POSIX Thread Library, Pthread)。POSIX为线程管理提供了一套跨平台的API,确保程序可以在多种类Unix操作...
Linux 多进程多线程编程是指在 Linux 操作系统下使用 C 语言进行多进程和多线程编程的技术。该技术可以大幅度提高程序的执行效率和响应速度,提高系统的并发能力和资源利用率。 1. 创建缺省线程 在 Linux 系统下,...
在Linux操作系统中,线程是进程的一个执行单元,它们共享同一地址空间,使得多线程编程成为并发处理和优化性能的有效手段。本压缩包“linux中的线程源代码”提供了实现Linux线程功能的源代码,对于理解线程工作原理...
pthread库,全称为Posix Threads,是为遵循Posix标准而设计的一种多线程库,主要应用于类Unix系统,如Linux。然而,由于其广泛的应用和功能强大,开发者也希望能将其应用于非Posix环境,例如Windows系统。"Windows可...
其中,`pthread`(Posix Threads)是UNIX和类UNIX操作系统上广泛使用的多线程API,它定义了一套标准的接口,使得开发者能够在不同的平台上创建和管理线程。尽管`pthread`最初设计用于符合POSIX标准的操作系统,但...
根据给定文件的信息,本文将深入探讨Linux下pthread库中几个关键函数的使用方法,并针对“段错误”这一常见问题进行分析与对策建议。 ### 1. pthread_create #### 函数原型 ```c int pthread_create(pthread_t *...
Linux下的多线程编程通常基于POSIX线程(pthread)库来实现,这个库提供了创建、同步和管理线程的丰富接口。 从给定的文件内容中,我们可以提取出多个相关的知识点: 1. pthread库的包含与使用:在程序中使用...
### Linux下的多线程编程知识点详解 #### 一、多线程基础介绍 **定义多线程术语** - **线程**: 进程中的一个执行单元,共享进程的内存空间和其他资源。 - **多线程**: 在单个进程中创建多个线程的能力。 - **并发...
线程编程是操作系统中的一种重要概念,它允许在同一个进程中执行多个线程,从而提高系统的并发性和效率。线程编程需要使用一些特殊的函数来创建、管理和控制线程的生命周期。在本文中,我们将总结线程基本编程中的...
《pthread库文档_急速版》是针对Linux操作系统下进行多线程编程的重要参考资料,它包含了完整的pthread API,方便开发者在不依赖外部网络的情况下快速查阅和学习。本文将深入解析pthread库的相关知识点,帮助读者...
### Linux多线程编程指南知识点总结 #### 一、多线程基础介绍 - **定义多线程术语:** - **线程(Thread)**:进程内的一个执行单元,是CPU调度的基本单位。 - **并发(Concurrency)**:多个任务同时进行的概念,但...
Linux下的多线程编程技术是操作系统编程中的重要组成部分,它允许程序并发执行多个任务,提高系统资源利用率,提升程序性能。以下是对这一主题的详细解释: 1. **线程的创建、终止及控制**: - **创建线程**:在...
### Linux多线程手册知识点详解 #### 一、多线程基础介绍 ##### 定义多线程术语 - **线程**:是进程中的一个执行单元,它共享进程的资源,但拥有独立的栈和寄存器上下文。 - **多线程**:指在一个进程中同时运行...
在编写多线程程序时,合理地使用`pthread_self()`、`pthread_join()`和`pthread_detach()`,以及妥善处理端口冲突,可以有效地优化程序性能并避免资源浪费。同时,熟悉这些基本工具和概念,也有助于排查和解决实际...
《Linux下多线程技术分析及应用》这篇文章深入探讨了在Linux操作系统中如何高效地实现多线程技术。Linux下的多线程不同于传统的进程创建,它通过克隆(`clone`)系统调用来创建线程,这种方法显著降低了CPU开销和...
这里提到的几个函数,包括`pthread_equal`、`pthread_self`、`pthread_create`、`pthread_join`、`pthread_exit`、`pthread_detach`和`pthread_cancel`,都是编写多线程程序中不可或缺的部分。 在部分内容中,`...
本文将深入探讨Linux环境下多线程的设计、创建、管理和相关属性。 1. **线程创建** 使用`pthread_create`函数可以创建一个新的线程。这个函数需要四个参数:线程标识符的指针,线程属性(默认为NULL,表示使用默认...
常见的多线程API和用法 pthread_self函数 pthread_create函数 pthread_exit函数 pthread_join函数 pthread_detach函数 pthread_equal函数