心胸决定格局,眼界决定境界...

文章分类 -  多线程

摘要:https://www.cnblogs.com/bethansy/p/7965820.html https://www.cnblogs.com/cnkai/p/7504980.html https://www.cnblogs.com/wc554303896/p/7083023.html https: 阅读全文
posted @ 2018-08-10 11:41 WELEN 阅读(113) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/TianFang/archive/2012/11/18/2776266.html 阅读全文
posted @ 2016-10-19 14:53 WELEN 阅读(570) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/mingnuo1/article/details/50019631 http://blog.csdn.net/yang__xz/article/details/50813681 阅读全文
posted @ 2016-09-10 20:39 WELEN 阅读(135) 评论(0) 推荐(0) 编辑
摘要:http://blog.sina.com.cn/s/blog_60dce3cd0101baj5.html 阅读全文
posted @ 2015-06-14 18:10 WELEN 阅读(135) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/lidabo/p/3328402.html本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出一... 阅读全文
posted @ 2014-06-24 19:46 WELEN 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2014-01-21 10:05 WELEN 阅读(95) 评论(0) 推荐(0) 编辑
摘要:本篇文章适合比较熟悉多线程并且想学习线程同步的读者。最近由于使用多线程,不可避免的要用到线程之间的同步,对一些常用的windows 中同步函数和机制有了一些初步的了解,并且写了一些小例子来验证,当然其中难免有错误和疏漏之处,希望高手能给我这个小鸟指出不足之处,非常感谢。目录一 临界区二 互斥体三 事件四 信号量五 附录一 临界区临界区的使用在线程同步中应该算是比较简单,说它简单还是说它同后面讲到的其它方法相比更容易理解。举个简单的例子:比如说有一个全局变量(公共资源)两个线程都会对它进行写操作和读操作,如果我们在这里不加以控制,会产生意想不到的结果。假设线程A正在把全局变量加1然后打印在屏幕上 阅读全文
posted @ 2013-11-24 23:54 WELEN 阅读(133) 评论(0) 推荐(0) 编辑
摘要:信号量的概念由 E. W. Dijkstra 于 1965 年首次提出。信号量实际是一个整数,进程(也可以是线程)在信号量上的操作分两种,一种称为 DOWN,而另外一种称为 UP。DOWN 操作的结果是让信号量的值减 1,UP 操作的结果是让信号量的值加 1。在进行实际的操作之前,进程首先检查信号量的当前值,如果当前值大于 0,则可以执行 DOWN 操作,否则进程休眠,等待其他进程在该信号量上的 UP 操作,因为其他进程的 UP 操作将让信号量的值增加,从而它的 DOWN 操作可以成功完成。某信号量在经过某个进程的成功操作之后,其他休眠在该信号量上的进程就有可能成功完成自己的操作,这时,系统负 阅读全文
posted @ 2013-11-24 23:50 WELEN 阅读(228) 评论(0) 推荐(0) 编辑
摘要:今天有同事问到线程的问题,自己突然就有点蒙了,只模糊的记得个大概。当初学习线程的时候把这7个状态记得比自己名字还熟悉还把这7个状态编成了一段凄惨而美丽的爱情故事没想到如今却只能记得个大概真验证了“好记性不如烂笔头”的真理还是赶快回忆一下吧先从图片开始小小的作下解释:1、线程的实现有两种方式,一是继承Thread类,二是实现Runnable接口,但不管怎样,当我们new了这个对象后,线程就进入了初始状态;2、当该对象调用了start()方法,就进入可运行状态;3、进入可运行状态后,当该对象被操作系统选中,获得CPU时间片就会进入运行状态;4、进入运行状态后情况就比较复杂了 4.1、run()方法 阅读全文
posted @ 2013-11-24 18:51 WELEN 阅读(305) 评论(0) 推荐(0) 编辑
摘要:函数原型:[cpp]view plaincopyHANDLECreateEvent(LPSECURITY_ATTRIBUTESlpEventAttributes,//SDBOOLbManualReset,//resettypeBOOLbInitialState,//initialstateLPCTSTRlpName//objectname);lpEventAttributes:指向SECURITY_ATTRIBUTES结构体,此结构体决定函数的返回句柄是否可以让子进程继承。如果这个参数为NULL,这个句柄是不能继承的。一般情况下,这个参数设置为NULL。bManualReset:指定将创建的E 阅读全文
posted @ 2013-11-22 00:23 WELEN 阅读(260) 评论(0) 推荐(0) 编辑
摘要:Linux 的多线程编程的高效开发经验本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条经验,用以改善 Linux 多线程编程的习惯和避免其中的开发陷阱。在本文中,我们穿插一些 Windows 的编程用例用以对比 Linux 特性,以加深读者印象。 背景 Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程上的问题,并分别引出相关改善的开发经验,用以避免这些的陷阱。我们希望这些经验可以帮.. 阅读全文
posted @ 2013-09-06 14:43 WELEN 阅读(1048) 评论(0) 推荐(0) 编辑
摘要:1. 首先pthread_cond_wait 的定义是这样的The pthread_cond_wait()andpthread_cond_timedwait()functions are used to block on a condition variable. They are called withmutexlocked by the calling thread or undefined behaviour will result.These functions atomically releasemutexand cause the calling thread to block o 阅读全文
posted @ 2013-09-06 11:43 WELEN 阅读(207) 评论(0) 推荐(0) 编辑
摘要:Outline- 1.线程特点- 2.pthread创建- 3.pthread终止 - 4.mutex互斥量使用框架 - 5.cond条件变量 - 6.综合实例================================================================================================1. 线程特点线程拥有自己独立的栈、调度优先级和策略、信号屏蔽字(创建时继承)、errno变量以及线程私有数据。进程的其他地址空间均被所有线程所共享,因此线程可以访问程序的全局变量和堆中分配的数据,并通过同步机制保证对数据访问的一... 阅读全文
posted @ 2013-09-04 17:00 WELEN 阅读(301) 评论(0) 推荐(0) 编辑
摘要:新建一个VC项目在项目属性中,将包含头文件的include文件夹添加到C/C++:General:Additional Include Directory将pthreadVC2.lib添加到Linker:Input:Addistional Dependencies将包含lib和dll的文件夹lib,添加进项目此时已经可以编译通过了,但还不能执行,缺少dll文件。执行该程序之前,还需要将pthreadVC2.dll拷贝到当前目录。1 下载库建议大家下载:ftp://sources.redhat.com/pub/pthreads-win32/pthreads-w32-2-7-0-release.e 阅读全文
posted @ 2013-09-04 16:49 WELEN 阅读(460) 评论(0) 推荐(0) 编辑