![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 64
Burning燊
这个作者很懒,什么都没留下…
展开
-
C++的类中使用pthread_create()
POSIX 标准下,创建线程的pthread_create函数原型是:int pthread_create(pthread_t *thread, pthread_attr_t *attr, void*(*start_routine)(void *), void *arg)在 C 中,,只要定义一个参数和返回值均为 void * 类型的函数,使用函数名字作为参数即可。就算不完全符原创 2012-12-12 16:12:04 · 2121 阅读 · 0 评论 -
C#超时处理
在网上搜索了很多C#超时处理的方法,下面一种是我调试过的:[csharp] view plain copy print?/// /// 超时处理 /// /// /// public class TimeoutChecker { long _timeout; //超时转载 2016-05-22 00:26:32 · 2654 阅读 · 0 评论 -
C# 委托的三种调用示例(同步调用 异步调用 异步回调)
本文将主要通过同步调用、异步调用、异步回调三个示例来讲解在用委托执行同一个加法类的时候的的区别和利弊首先,通过代码定义一个委托和下面三个示例将要调用的方法:复制代码代码如下:public delegate int AddHandler(int a,int b); public class 加法类 { pu转载 2016-05-21 12:29:43 · 982 阅读 · 0 评论 -
如何使用strace+pstack利器分析程序性能
如何使用strace+pstack利器分析程序性能引言有时我们需要对程序进行优化、减少程序响应时间。除了一段段地对代码进行时间复杂度分析,我们还有更便捷的方法吗?若能直接找到影响程序运行时间的函数调用,再有针对地对相关函数进行代码分析和优化,那相比漫无目的地看代码,效率就高多了。将strace和pstack工具结合起来使用,就可以达到以上目的。strace跟踪程转载 2013-01-24 14:58:30 · 514 阅读 · 0 评论 -
linux开发多线程中lsof与ulimit的使用的2个链接
开发linux平台的多线程程序中,遇到系统文件描述符限制引起的宕机,可以通过lsof和ulimit查看与修改系统配置来改善。使用 lsof 查找打开的文件 :讲解通过lsof查看多线程打开的文件数;通过 ulimit 改善系统性能 :讲解通过ulimit修改系统资源限制,提高系统性能的方法。原创 2013-01-10 14:41:55 · 1293 阅读 · 0 评论 -
linux下多线程的创建与等待详解
原文链接所有线程都有一个线程号,也就是Thread ID。其类型为pthread_t。通过调用pthread_self()函数可以获得自身的线程号。下面说一下如何创建一个线程。通过创建线程,线程将会执行一个线程函数,该线程格式必须按照下面来声明:void * Thread_Function(void *)创建线程的函数如下:int pthread_create(转载 2013-01-09 15:38:34 · 370 阅读 · 0 评论 -
线程池中线程数目的变化规律
通过实验研究“线程池中线程数目的变化规律”线程的运行过程可以描述如下(为了叙述方便,我们假设下限为10,上限为20):1.当线程池被创建后,里面就会创建10个空线程(和下限值相同)。2.当我们向线程池中排入一个任务后,就会有一个空线程接手该任务,然后运行起来。随着我们不断向线程池中排入任务,线程池中的空线程逐一接手并执行任务。3.随着任务的不断增加,在某一时刻任转载 2012-12-28 18:41:24 · 830 阅读 · 0 评论 -
Linux平台多线程连接MySQL细节赘述
写个多线程也就一会儿的事,但是从来没来接触过MySQL,要做多线程连接MySQL,八成的时间都浪费在对MySQL细节的学习上了,小结一下,如果有遇到类似问题,希望能有帮助。 在MySQL中文参考手册 上有一段需要特别注意:如果你用线程的编程,你应该用--with-thread-safe-client编译MySQL C API,这将使C API线程对每个连接更安全。你可以让2个线程共原创 2012-12-26 19:08:01 · 1261 阅读 · 0 评论 -
MySQL连接与创建pthread开销对比
写了2个测试程序,用于对比MySQL连接与创建pthread的overhead,测试MySQL的程序为:#include #include void pa_mysql_connect(MYSQL *mysql_conn) { // my_init(); if (NULL == mysql_init(mysql_conn)) { write_log("C原创 2012-12-27 15:42:21 · 860 阅读 · 0 评论 -
线程的属性
属性结构为pthread_attr_t,它同样在头文件/usr/include/pthread.h中定义,喜欢追根问底的人可以自己去查看。属性值不能直接设置,须使用相关函数进行操作,初始化的函数为pthread_attr_init,这个函数必须在pthread_create函数之前调用。属性对象主要包括是否绑定、是否分离、堆栈地址、堆栈大小、优先级。默认的属性为非绑定、非分离、缺省1M的堆栈、与父转载 2012-12-13 17:22:50 · 399 阅读 · 0 评论 -
Linux操作系统下的多线程编程详细解析----条件变量pthread_cond_t
原文链接 1.初始化条件变量pthread_cond_init#include int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr);返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参数cattr为空指针时,函数创建的是一个转载 2012-12-12 18:17:09 · 461 阅读 · 0 评论 -
linux下多线程连接mysql(C语言)
采用pthread库,在linux环境下使用gcc编译并运行的Mysql多线程模型。编译时gcc增加编译选项: -lpthread -lmysqlclient_r.so, 后者是mysql 的线程安全链接库(referlinux 下mysql多线程支持问题),数据库访问部分如下。 (每个线程维护一个单独的MYSQL结构,并初始化线程专用数据,由于mysql原创 2012-12-25 11:17:44 · 2961 阅读 · 0 评论 -
Invoke and BeginInvoke BeginInvoke和EndInvoke方法 (转)
转载自 http://www.cnblogs.com/moses/archive/2009/12/16/1625843.html三篇文章分别转自:http://www.cnblogs.com/renhaojie/archive/2009/09/10/1564052.htmlhttp://www.cnblogs.com/worldreason/archive/2008/06/09转载 2016-05-22 00:28:58 · 1002 阅读 · 0 评论