多线程
hubi
每天收获多一点。
展开
-
mutex和spin lock的区别
[转]mutex和spin lock的区别 mutex和spin lock的区别和应用(sleep-waiting和busy-waiting的区别)2011-10-19 11:43 信号量mutex是sleep-waiting。 就是说当没有获得mutex时,会有上下文切换,将自己、加到忙等待队列中,直到另外一个线程释放mutex并唤醒它,而这时CPU是空闲的,可以调度别的任务处理。转载 2016-03-04 13:58:06 · 644 阅读 · 0 评论 -
linux 多线程(条件变量)
#include #include #include #include #include #include /** *int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t * cond_attr); *int pthread_cond_signal(pthread_cond_t *cond); *int pthre原创 2012-10-04 15:46:19 · 1851 阅读 · 0 评论 -
linux 多线程小例子
先看一个有问题的例子: #include #include #include #include #include #include void * pthread_function(void * arg); #define MAX_SIZE 10 int main(int argc, char const *argv[]) { pthread_t pthread[MAX_S原创 2012-10-06 10:04:25 · 1823 阅读 · 0 评论 -
Linux 线程(创建/等待/终止)
/* FirstThreadFunc.c*/ #include //#include //#include #include void thread (void) { // sleep(1); int i; int tid = pthread_self();//返回自己的线程ID for (i = 0; i < 3; i++) printf ("This is a p原创 2012-09-15 16:35:31 · 7055 阅读 · 0 评论 -
GDB 多线程
转自:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1965114 一直对GDB多线程调试接触不多,最近因为工作有了一些接触,简单作点记录吧。 先介绍一下GDB多线程调试的基本命令。 info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有转载 2012-09-15 18:47:36 · 2431 阅读 · 0 评论 -
Linux 多线程同步(互斥量)
/*threadrace.c*/ #include #include #include #include int myglobal; pthread_mutex_t work_mutex = PTHREAD_MUTEX_INITIALIZER //定义互斥量 //初始化互斥量 pthread_mutex_init(&work_mutex, NULL); void * thread_f原创 2012-09-15 18:46:26 · 1497 阅读 · 0 评论 -
Linux 多线程同步(信号量)
sem_wait函数也是一个原子操作,它的作用是从信号量的值减去一个“1”,但它永远会先等待该信号量为一个非零值才开始做减法。也就是说,如果你对一个值为2的信号量调用sem_wait(),线程将会继续执行,这信号量的值将减到1。如果对一个值为0的信号量调用sem_wait(),这个函数就 会地等待直到有其它线程增加了这个值使它不再是0为止。如果有两个线程都在sem_wait()中等待同一个信号原创 2012-09-15 20:54:10 · 2171 阅读 · 0 评论 -
Linux 多线程编程( POSIX )( 二 )----->pthread_attr_t 线程属性
http://blog.sina.com.cn/s/blog_6dc9e4cf0100xcvp.html转载 2012-09-18 19:01:13 · 1286 阅读 · 0 评论 -
线程池服务程序设计
1)原理分析 线程池的核心设计思想是系统在初始化时,创建一定数量的服务线程,并使他们处于空闲状态,若当前有新用户到来,则系统先查找当前有无空闲线程,若有则立即为其分配服务线程,如没有,则将新用户加入待服务队列,并在其他用户结束服务时,再重新为其分配服务线程。 新用户如果在等待服务队列里的时间过长,会影响用户体验。 方法:1、动态创建新服务线程,服务结束后,该线程加入到线性池,但大量的用户下,原创 2012-09-19 00:05:48 · 1946 阅读 · 2 评论 -
线程池服务程序设计(续)
设计一个线程池,大小为4,服务器的功能就是“加减乘除”,客户端只需输入相应的指令和两个数字,比如输入add,然后输入12,13,然后把相应的结构传送给服务器计算,服务器把结果传回。代码来自《LinuxC程序基础与实例讲解》中,只是做了部分修改: server端: #include #include #include #include #include #include原创 2012-10-06 15:41:03 · 2640 阅读 · 2 评论 -
一个Linux下C线程池的实现(转)
1.线程池基本原理 在传统服务器结构中, 常是 有一个总的 监听线程监听有没有新的用户连接服务器, 每当有一个新的 用户进入, 服务器就开启一个新的线程用户处理这 个用户的数据包。这个线程只服务于这个用户 , 当 用户与服务器端关闭连接以后, 服务器端销毁这个线程。然而频繁地开辟与销毁线程极大地占用了系统的资源。而且在大量用户的情况下, 系统为了开辟和销毁线程将浪费大量的时间和资源。线程池提转载 2012-10-07 13:42:53 · 43027 阅读 · 10 评论 -
liunx多线程 同步
http://www.360doc.com/content/11/1126/10/1317564_167467924.shtml转载 2015-07-22 17:15:42 · 561 阅读 · 0 评论 -
线程安全
线程安全: 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题。 线程安全问题都是由全局变量及静转载 2012-09-24 08:28:33 · 707 阅读 · 0 评论 -
linux下安装配置intel的tbb
下载最新的TBB的库,我的是tbb30_20100822oss_src; tar zxvf tbb30_20100822oss_src 进入解压缩目录下,执行make。 cd build chmod +x *.sh sh generate_tbbvars.sh sh tbbvars.sh cd linux_intel64_gcc_cc4.1.2_libc2.5_kernel2.6.转载 2016-03-04 17:00:29 · 1570 阅读 · 0 评论 -
Intel发布面向开发者的推荐阅读清单
http://www.infoq.com/cn/news/2014/01/intel-recommended-reading-list/转载 2016-11-20 23:13:48 · 341 阅读 · 0 评论