没有合适的资源?快使用搜索试试~ 我知道了~
多线程map容器互斥代码
4星 · 超过85%的资源 需积分: 34 74 下载量 77 浏览量
2011-09-04
00:06:57
上传
评论
收藏 101KB DOC 举报
温馨提示
试读
3页
题目要求如下: //使用多线程,定时器和map等编程技巧。 // 定义map对象来存储数据,主线程中定时向该对象插入数据,每次插入两个连续的数据插入后显示出当前map大小。 //第二个线程定时删除map中的数据,每次删除一个最前面的数据,删除后显示当前的map大小。 //当主线程判断当前的map大小为1000时,终止第二个线程。确保第二个线程结束后主线程退出。 //在对map进行操作时,要加临界区保护。
资源推荐
资源详情
资源评论
这是老师布置的一个课后作业,代码已经在 Microso Visual Studio .NET 2003 上编译通过
题目要求如下:
//使用多线程,定时器和 map 等编程技巧。
// 定义 map 对象来存储数据,主线程中定时向该对象插入数据,每次插入两个连续的数据
插入后显示出当前 map 大小。
//第二个线程定时删除 map 中的数据,每次删除一个最前面的数据,删除后显示当前的
map 大小。
//当主线程判断当前的 map 大小为 1000 时,终止第二个线程。确保第二个线程结束后主线
程退出。
//在对 map 进行操作时,要加临界区保护。
代码(仅供参考):
// 删除线程.cpp : Denes the entry point for the console applica$on.
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <map>
using namespace std;
std::map<int,int> mapdate;
HANDLE hMutex; //互斥量
MSG msg;
sta$c int i=0;
sta$c int j=0;
//删除第一个数字
DWORD WINAPI DeliteFunc(LPVOID lpParameter)
{
PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE);
//设置定时器
UINT DeliteId = (UINT)SetTimer(NULL, 0, 2000, NULL);
while(GetMessage(&msg, NULL, 0, 0))
{
if(msg.message == WM_TIMER)
{
WaitForSingleObject(hMutex, INFINITE);
map<int,int>::iterator iter = mapdate.begin();
subyafei
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页