/*
生产者/消费者通用模板
特点:
高性能:采用多线程,多队列平衡的信号量等待模型,有效减少锁等待
可调节:可以根据实际应用环境调整队列数,最多可支持64个队列
使用简单,一个构造函数,一个生产函数,一个消费函数。
*/
#ifndef PANDC_H
#define PANDC_H
#include
#include
#include
#include
using namespa...
分类:
编程语言 时间:
2014-08-02 01:55:22
阅读次数:
256
预备知识:一、android每个客户端分为两条线程:1.主线程:负责生成主界面,并响应用户动作,并且把用户输入的数据写入socket对应的输出流。2.子线程:负责读取从服务器发送过来的数据,并且显示到程序界面上。二、Handler消息传递机制(一)Handler的两个作用:1.在新启动的线程中发送消...
分类:
移动开发 时间:
2014-08-02 01:35:52
阅读次数:
363
多线程操里操作webbrowser的 Frames有这样一个函数,直接在窗体中运行正常,但放到线程里一到frames就报错procedure TForm1.fillframese1(webbrowser:TWebBrowser;params:TStrings;frameindex:integer);...
分类:
编程语言 时间:
2014-08-01 23:04:12
阅读次数:
243
1 /* 2 * 关于线程下共享相同的内存单元(包括代码与数据) 3 * ,并利用这些共享单元来实现数据交换,实时通信与必要的同步操作。 4 * 对于Thread(Runnable target)构造方法创建的线程,轮到它来享用CPU资源时。 5 * 目标对象就会自动调用接口中的run()...
分类:
编程语言 时间:
2014-08-01 22:58:32
阅读次数:
342
生产者-消费者是很有意思的一种算法。它的存在主要是两个目的,第一就是满足生产者对资源的不断创造;第二就是满足消费者对资源的不断索取。当然,因为空间是有限的,所以资源既不能无限存储,也不能无限索取。 生产者的算法,[cpp] view plaincopyWaitForSingleObject(hEmp...
分类:
编程语言 时间:
2014-08-01 22:39:02
阅读次数:
266
多线程编程是现代软件技术中很重要的一个环节。要弄懂多线程,这就要牵涉到多进程?当然,要了解到多进程,就要涉及到操作系统。不过大家也不要紧张,听我慢慢道来。这其中的环节其实并不复杂。 (1)单CPU下的多线程 在没有出现多核CPU之前,我们的计算资源是唯一的。如果系统中有多个任务要处理的话,那么就.....
分类:
编程语言 时间:
2014-08-01 19:18:22
阅读次数:
263
在多线程存在的环境中,除了堆栈中的临时数据之外,所有的数据都是共享的。如果我们需要线程之间正确地运行,那么务必需要保证公共数据的执行和计算是正确 的。简单一点说,就是保证数据在执行的时候必须是互斥的。否则,如果两个或者多个线程在同一时刻对数据进行了操作,那么后果是不可想象的。 也许有的朋友会说,不....
分类:
编程语言 时间:
2014-08-01 19:17:12
阅读次数:
260
在windows系统中,系统本身为我们提供了很多锁。通过这些锁的使用,一方面可以加强我们对锁的认识,另外一方面可以提高代码的性能和健壮性。常用的锁以下四种:临界区,互斥量,信号量,event。 (1)临界区 临界区是最简单的一种锁。基本的临界区操作有,[cpp] view plaincopyIni....
分类:
编程语言 时间:
2014-08-01 19:16:42
阅读次数:
271
当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线 程,线程提供了多任务处理的能力。用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义。现在 的大型应用...
分类:
编程语言 时间:
2014-08-01 19:15:12
阅读次数:
352
自旋锁是SMP中经常使用到的一个锁。所谓的smp,就是对称多处理器的意思。在工业用的pcb板上面,特别是服务器上面,一个pcb板有多个cpu是 很正常的事情。这些cpu相互之间是独立运行的,每一个cpu均有自己的调度队列。然而,这些cpu在内存空间上是共享的。举个例子说,假设有一个数据 value....
分类:
编程语言 时间:
2014-08-01 19:13:52
阅读次数:
246