
linux多线程
文章平均质量分 91
编程小问号
这个作者很懒,什么都没留下…
展开
-
linux C++ 多线程浅尝
学习了几天Linux多线程,大多是看的别人的博客,并试着写了个小例子,现在也把学到的一些东西记录下来,供以后查阅,属于初级入门的范围,望共勉。 进程是系统中程序执行和分配资源的基本单位,每个进程都有自己独立的数据段,代码段和堆栈段。而线程是系统中独立运行的最小单位,可以说操作系统分配CPU时间的最小单位,可以叫轻型的进程。一个进程可以有多个线程,在多进程情况下,每个进程都有着自己的地址空转载 2014-07-19 12:08:49 · 525 阅读 · 0 评论 -
gettid 和pthread_self的区别
Linux中,每个进程有一个pid,类型pid_t,由getpid()取得。Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即不同进程中的线程可能有相同的id)。Linux中的POSIX线程库实现的线程其实也是一个进程(LWP),只是该进程与主进程(启动线程的进程)共享一些资源而已,比如代码段,转载 2015-12-14 13:31:30 · 487 阅读 · 0 评论 -
linux多线程编程--信号量和条件变量 唤醒丢失事件
关于linux下信号量和条件变量的使用,在很多地方都可以找到相关文章,信号量、条件变量、互斥锁都是线程同步原语,在平时多线程编程中只要知道一两种就可以轻松搞定,我也是这么认为的,但是今天发现,有时还是有区别的。 在实现多线程编程中,其中有些东西是可以互相转换的,比如使用信号量可以实现条件变量,关于这三者的基本用法不在累述,我的博客中也有相关介绍,这里介绍条件变量丢失唤醒事件的事转载 2015-10-31 22:59:34 · 3056 阅读 · 2 评论 -
无锁编程与有锁编程的性能对比与分析
最近维护的一个网络服务器遇到性能问题,于是就对原有的程序进行了较大的框架改动。改动最多的是线程工作模式与数据传递方式,最终的结果是改变锁的使用模式。经过一番改进,基本上可以做到 GMb 网卡全速工作处理。在 性能达标之后,一度在想有没有什么办法使用更加轻量级锁,或者去掉锁的使用,为此搜索一些相关的研究成果,并做了一些实验来验证这些成果,因而就有这篇文章。希望有做类似工作的同行可以有所借鉴。如果有人转载 2015-10-29 15:30:17 · 506 阅读 · 0 评论 -
从hiredis使用出core谈谈redis多线程的使用
原文地址:http://my.oschina.net/jungleliu0923/blog/202948摘要 hireedis多线程出core原因目录[-]1、情景描述1.1 使用场景1.2 初步实现方案1.3 结果2、线下复现2.1 代码2.2 编译执行2.3 原因分析3. 终极解决方案转载 2015-07-25 11:35:08 · 747 阅读 · 0 评论 -
pthread_getpecific和pthread_setspecific
pthread_getpecific和pthread_setspecific实现同一个线程中不同函数间共享数据的一种很好的方式。 #more test.c/* * ===================================================================================== *转载 2015-07-01 16:47:33 · 706 阅读 · 0 评论 -
pthread 简要使用指南 线程属性(pthread_attr_t)
先上代码。suse linux上pthread_attr_init,man(3)上面的例子: #ifndef _GNU_SOURCE #define _GNU_SOURCE /* To get pthread_getattr_np() declaration */#endif#include #include #include #include #i转载 2015-03-25 14:47:29 · 1152 阅读 · 0 评论 -
线程属性pthread_attr_t简介
本文编辑整理自: http://hi.baidu.com/7828058/blog/item/256e16decd1a385e94ee3784.htmlhttp://www.ibm.com/developerworks/cn/linux/thread/posix_threadapi/part1/ Posix线程中的线程属性pthread_attr_t主要包括scope属性、de转载 2015-03-25 12:15:41 · 553 阅读 · 0 评论 -
隐蔽的内存泄漏——pthread_create 属性设置不当导致
最近解决了一个隐蔽的内存泄漏问题,我们的进程是HA模式,用户不停的切换,会导致内存不停的增长,切换一次,再切回来内存便增加8M左右。原因就是是pthread_create后的僵死线程没有释放导致的内存持续增长。pthread_create (&thread, NULL, &thread_function, NULL); 就这么写了,参数2没有设置线程结束后自动detach,并且没有使用转载 2015-03-25 12:17:39 · 1018 阅读 · 0 评论 -
多线程编程指南
多线程编程指南1--线程基础线程编程指南1--线程基础Wednesday, 29. March 2006, 11:48:45多线程本文出自:BBS水木清华站 作者:Mccartney (coolcat) (2002-01-29 20:25:25)multithreading可以被翻译成多线程控制。与传统的UNIX不同,一个传统 的UNIX进程包含一个单线程,转载 2015-01-03 13:20:23 · 1103 阅读 · 0 评论 -
递归锁
近日在调试一个线程挂起的BUG,究其原因是该用递归锁的地方使用了普通的互斥锁,导致了死锁。 趁着这个机会也好好了解了一下很少用到的递归锁。 所谓递归锁,就是在同一线程上该锁是可重入的,对于不同线程则相当于普通的互斥锁。 例如:有互斥量LOCK func A () { LOCK.lock(); B(); LOCK.unlock();转载 2015-02-04 15:13:04 · 860 阅读 · 0 评论 -
pthread_cond_wait while循环
在Stevens的《Unix 环境高级编程》中第11章线程关于pthread_cond_wait的介绍中有一个生产者-消费者的例子P311,在进入pthread_cond_wait前使用while进行条件判断,而没有直接使用if,耐人费解![cpp] view plaincopyprint?#include struct msg { struct m转载 2014-07-09 17:32:39 · 647 阅读 · 0 评论 -
多线程执行顺序
一直对多线程编程这一块很陌生,决定花一点时间整理一下。os:ubuntu 10.04 c++1.最基础,进程同时创建5个线程,各自调用同一个函数[html] view plaincopyprint?#include iostream> #include pthread.h> //多线程相关操作头文件,可移植众多平台 using namespace转载 2014-07-05 16:52:55 · 2088 阅读 · 0 评论 -
linux c++线程池的实现
线程池的原理大家都知道,直接上代码了^_^Thread.h[cpp] view plaincopy#ifndef __THREAD_H #define __THREAD_H #include #include #include using namespace std;转载 2014-07-19 11:55:43 · 426 阅读 · 0 评论 -
posix thread
描述了一个比较特殊的难题:如果线程正在等待某个特定条件发生,它应该如何处理这种情况?它可以重复对互斥对象锁定和解锁,每次都会检查共享数据结构,以查找某个值。但这是在浪费时间和资源,而且这种繁忙查询的效率非常低。解决这个问题的最佳方法是使用 pthread_cond_wait() 调用来等待特殊条件发生。了解 pthread_cond_wait() 的作用非常重要 -- 它是 POSIX 线程信转载 2014-06-28 17:05:48 · 492 阅读 · 0 评论 -
linux-多线程--面试题
刚无意中看到MoreWindows博主秒杀多线程面试题(http://blog.youkuaiyun.com/column/details/killthreadseries.html),第一篇就有他收集的面试题。那我就用来检验一下自己学的怎么样吧。 前面的选择题那些跳过,直接看最后的编程题。第三题(某培训机构的练习题):子线程循环 10 次,接着主线程循环 100 次,接着又转载 2014-06-28 11:50:59 · 574 阅读 · 0 评论 -
linux-多线程
一、什么是线程? 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。二、什么时候使用多线程? 当多个任务可以并行执行时,可以为每个任务启动一个线程。三、线程的转载 2014-06-28 11:48:52 · 442 阅读 · 0 评论 -
c/c++: 多线程编程基础讲解
最近喜欢听大学听到的老歌,deutschland 德国世界杯时候流行的,据说不是主题曲但是比主题曲还要火。本篇进入难点了,mutex互斥锁概念,mutex=mutual exclusion的缩写,顺便说一句:以前老师都爱用缩写,也不跟同学说全称,这尼玛能理解深刻么!下文是用法:[cpp] view plaincopy#include转载 2014-07-19 12:22:40 · 590 阅读 · 0 评论 -
__pthread_once 源码解析
想到这个主题,也是由于最近在写自己的开源代码时,发现使用的singleton类是线程不安全的,虽然在应用主线程都已确保了初始化的正确性,但从一个通用库的角度来讲,这么做就无法保证使用者不出问题,也限制了自由度,pthread_once就是解决这个问题的一个良方,不过首先我们还是先从一些基本的singleton实现说起。网上关于singleton类的实现真是一搜一箩筐,从最简单的说起(注:为转载 2015-12-02 19:06:32 · 1222 阅读 · 0 评论