上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 45 下一页
摘要: 生产者消费者问题是一个著名的线程同步问题,该问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,显然生产者和消费者之间必须保持同... 阅读全文
posted @ 2015-10-06 18:14 stemon 阅读(1391) 评论(0) 推荐(0)
摘要: 内核对象只是操作系统内核分配的一个内存块,并且只能由操作系统内核访问。该内存块是一种数据结构,它的成员负责维护该对象的各种信息。Windows提供一组函数创建和操作内核对象。调用一个创建内核对象的函数,函数会返回一个句柄,该句柄标识了这个内核对象,这个句柄可由当前进程中的所有线程调用。也可以通过跨进... 阅读全文
posted @ 2015-10-06 00:32 stemon 阅读(430) 评论(0) 推荐(0)
摘要: 针对一个经典的线程同步互斥问题,前面几篇文章提出了四种解决方案:关键段、事件、互斥量、信号量。下面对这四种解决方案做一个总结,梳理一下知识点:首先来看下关于线程同步互斥的概念性的知识,相信大家通过前面的文章,已经对线程同步互斥有一定的认识了,也能模糊的说出线程同步互斥的各种概念性知识,下面再列出从《... 阅读全文
posted @ 2015-10-05 20:47 stemon 阅读(897) 评论(0) 推荐(0)
摘要: 本篇文章介绍如何使用信号量解决线程的同步互斥。首先也来看看如何使用信号量,信号量Semaphore常用有三个函数,使用很方便。下面是这几个函数的原型和使用说明。第一个 CreateSemaphore函数功能:创建信号量函数原型:HANDLE CreateSemaphore( LPSECURITY_... 阅读全文
posted @ 2015-10-05 15:51 stemon 阅读(654) 评论(0) 推荐(0)
摘要: 线程的实现方式线程的实现可以分为两类:用户级线程(User-LevelThread, ULT)和内核级线程(Kemel-LevelThread, KLT)。内核级线程又称为内核支持的线程。在用户级线程中,有关线程管理的所有工作都由应用程序完成,内核意识不到线程的存在。应用程序可以通过使用线程库设计成... 阅读全文
posted @ 2015-10-05 12:34 stemon 阅读(1124) 评论(0) 推荐(0)
摘要: 本篇通过互斥量来解决线程的同步,学习其中的一些知识。互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥量与关键段的行为非常相似,并且互斥量可以用于不同进程中的线程互斥访问资源。使用互斥量Mutex主要将用到四个函数。下面是这些函数的原型和使用说明。第一个 CreateMutex函数功... 阅读全文
posted @ 2015-10-05 01:47 stemon 阅读(763) 评论(0) 推荐(0)
摘要: 使用关键段来解决经典的多线程同步互斥问题,由于关键段的“线程所有权”特性所以关键段只能用于线程的互斥而不能用于同步。本篇介绍用事件Event来尝试解决这个线程同步问题。首先介绍下如何使用事件。事件Event实际上是个内核对象,它的使用非常方便。下面列出一些常用的函数。第一个 CreateEvent函... 阅读全文
posted @ 2015-10-04 15:58 stemon 阅读(750) 评论(1) 推荐(0)
摘要: 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。材料的地址:http://www.qnx.com/developers/docs/6.4.1/neutrino/getting_sta... 阅读全文
posted @ 2015-10-03 11:16 stemon 阅读(313) 评论(0) 推荐(0)
摘要: 字符串的匹配先定义两个名词:模式串和文本串。我们的任务就是在文本串中找到模式串第一次出现的位置,如果找到就返回位置的下标,如果没有找到返回-1.其实这就是C++语言里面的一个函数:extern char *strstr(char *str1, const char *str2);对于这个函数的解释:... 阅读全文
posted @ 2015-10-01 20:40 stemon 阅读(1413) 评论(0) 推荐(0)
摘要: 算法分析1. 若字符串开头是空格,则跳过所有空格,到第一个非空格字符,如果没有,则返回0.2. 若第一个非空格字符是符号+/-,则标记isPositive的真假,这道题还有个局限性,那就是在c++里面,+-1和-+1都是认可的,都是-1,而在此题里,则会返回0.3. 若下一个字符不是数字,则返回0.... 阅读全文
posted @ 2015-10-01 16:13 stemon 阅读(364) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 45 下一页