
linux/线程
文章平均质量分 92
imxiangzi
这个作者很懒,什么都没留下…
展开
-
线程问题的核心: 怎么退出线程才是合适的----小话多线程(2)
作者:陈曦 日期:2012-8-5 16:13:36 环境:[Mac 10.7.1 Lion Intel i3 支持64位指令 gcc4.2.1 xcode4.2 苹果开源代码Libc-763.11] 转载请注明出处 每日总结:优秀的架构都是类似的,垃圾的架构一般都是一个原因:代码内部原理掌握得不够 Q1: main函数中最后用return 0; 和使用 exit(转载 2015-05-18 21:25:25 · 1153 阅读 · 0 评论 -
inux查看进程的所有子进程和线程
得到进程的pid: ps -ef | grep process_name | grep -v "grep" | awk '{print $2}' 查看进程的所有线程 # ps mp 6648 -o THREAD,tid USER %CPU PRI SCNT WCHAN USER SYSTEM TID root 0.0 - - - - - - root 0.0 24 - - - -转载 2015-07-29 11:07:32 · 635 阅读 · 0 评论 -
Linux下查看进程、线程
ps -ef f 用树形显示进程和线程 在Linux下面好像因为没有真正的线程,是用进程模拟的,有一个是辅助线程,所以真正程序开的线程应该只有一个。 ps -ef f |grep httpd [root@apache dhj]# ps -ef f|grep httpd root 3756 1 0 Jun09 ? Ss 0:38 /usr/loc转载 2015-07-29 10:50:23 · 601 阅读 · 0 评论 -
linux线程的线程ID与其进程ID
在linux中,线程与进程最大的区别就是是否共享同一块地址空间,而且共享同一块地址空间的那一组线程将显现相同的PID号。 在实际编程应用中,我们会很容易发现并证明,一组同源线程的PID都是一样的,但它们的PID真的一样么? 在linux中,线程的创建和普通进程的创建类似,只不过在调用clone()的时候需要传递一些参数标志来指明需要共享的资源: clo转载 2015-07-29 11:16:39 · 704 阅读 · 0 评论 -
Linux 线程模型的比较:LinuxThreads 和 NPTL
回页首 GNU_LIBPTHREAD_VERSION 宏 大部分现代 Linux 发行版都预装了 LinuxThreads 和 NPTL,因此它们提供了一种机制来在二者之间进行切换。要查看您的系统上正在使用的是哪个线程库,请运行下面的命令: $ getconf GNU_LIBPTHREAD_VERSION 这会产生类似于下面的输出结果: NPTL 0.34 或者转载 2015-07-29 11:17:12 · 1867 阅读 · 0 评论 -
Linux下从信号量看线程调度时间
前几天写了一篇文章关于Linux下进程调度时间的,本意是想测试下实时性能的,包括中断响应时间等等,这个可能需要借助于硬件发出终端来测试, 那片文章是讲的是通过发送信号给另一个进程,然后测量发送信号到进入信号处理程序之间的时间 信号只是针对进程来说的,今天讲的主要是通过信号量semaphore来测试一下线程间切换的时间 首先看下基础知识: 1.Linux下的进程和线程转载 2015-07-29 11:01:46 · 2496 阅读 · 0 评论 -
Linux下多线程查看工具(pstree、ps、pstack)
1. pstree pstree以树结构显示进程 $ pstree -p work | grep ad sshd(22669)---bash(22670)---ad_preprocess(4551)-+-{ad_preprocess}(4552) |-{ad_preprocess}(4553转载 2015-07-29 11:09:49 · 612 阅读 · 0 评论 -
Linux 多线程调试(内存占用、死循环、CPU占用率高……)
你的软件在某个时刻停止服务,CPU占用达到100%+,这种问题一个可能的原因是产生了死循环,假设程序某处存在潜在的死循环,并在某种条件下会引发,本文以一个示例来定位出现死循环的位置。 当程序某处存在死循环,通常定位问题及缩小范围的方法是,在可疑的代码处加log,或者注释掉可疑代码,这对于容易重现问题的程序来说还好,但对于“偶尔”才会产生问题程序却很难调试,因为我们很难重现程序故障。本文所述的调试转载 2015-07-29 11:05:41 · 1858 阅读 · 0 评论 -
在Linux中使用线程
我并不假定你会使用Linux的线程,所以在这里就简单的介绍一下。如果你之前有过多线程方面的编程经验,完全可以忽略本文的内容,因为它非常的初级。 首先说明一下,在Linux编写多线程程序需要包含头文件pthread.h。也就是说你在任何采用多线程设计的程序中都会看到类似这样的代码: [cpp] view plaincopy #includ转载 2015-07-29 10:59:26 · 586 阅读 · 0 评论 -
Linux下多线程调试的一些方法
一直觉得Linux下的多线程调试是很麻烦的,因为一般大一点的程序线程会很多,通过gdb的info thread命令看全都是系统调用,看不到详细的方法,至少我看到是这样的...如果用thread id跟进每个thread去bt,是件相当痛苦的事情,特别是你info thread看到近百个线程的时候T_T.而且大多时候等待重现问题或重启程序的时间代价是相当高的,在程序运行的情况下查看thread堆栈情转载 2015-07-29 10:22:19 · 1834 阅读 · 0 评论 -
Linux多线程编程(不限Linux)
——本文一个例子展开,介绍Linux下面线程的操作、多线程的同步和互斥。 前言 线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题: 是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能: 1)有一int型全局变量g_Flag初始值为0; 2转载 2015-07-25 11:16:51 · 464 阅读 · 0 评论 -
linux C++ 多线程编程
1.Solaris .vs. Linux Posix 库 Solaris 库(lib 线程) Linux POSIX 库(libp 线程) 操作 sema_destroy() sem_destroy() 销毁信号状态。 sema_init() sem_init() 初始化信号。 sema_post() sem_post()转载 2015-05-18 21:47:36 · 612 阅读 · 0 评论 -
Linux 的多线程编程的高效开发经验
背景 Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程上的问题,并分别引出相关改善的开发经验,用以避免这些的陷阱。我们希望这些经验可以帮助读者们能更好更快的熟悉 Linux 平台的多线程编程。 我们假转载 2015-07-25 11:19:18 · 507 阅读 · 0 评论