社区
C++ 语言
帖子详情
关于创建线程的一道题目
tzh8478
2006-11-12 06:21:46
创建两个并发线程,一个是读线程,另一个是写线程。这两个线程共享一个数组A,写线程对数组分别进行10次写操作,每次写操作对A的每个元素赋一个相同的值;读线程对数组分别进行10次读操作,每次读操作输出A中所有元素的值。修改代码,使每次读写互斥,即每次对数组的写操作结束后才能进行写操作,反之亦然。
...全文
381
12
打赏
收藏
关于创建线程的一道题目
创建两个并发线程,一个是读线程,另一个是写线程。这两个线程共享一个数组A,写线程对数组分别进行10次写操作,每次写操作对A的每个元素赋一个相同的值;读线程对数组分别进行10次读操作,每次读操作输出A中所有元素的值。修改代码,使每次读写互斥,即每次对数组的写操作结束后才能进行写操作,反之亦然。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
PJQ_blues
2006-11-17
打赏
举报
回复
即每次对数组的写操作结束后才能进行写操作????这是什么要求
KthTes
2006-11-17
打赏
举报
回复
刚才只是大致的实例,到时候你还要拿CreateThread返回的句柄把线程销掉,把句柄Close掉。baidu一下CreateThread,TerminateThread和CloseHandle的用法
KthTes
2006-11-17
打赏
举报
回复
#include <iostream>
#include <windows.h>
using namespace std;
CRITICAL_SECTION g_cs;
void WINAPI readThread(int* buf)
{
EnterCriticalSection(&g_cs);
cout<<"开始读"<<endl;
LeaveCriticalSection(&g_cs);
}
void WINAPI writeThread(int* buf)
{
EnterCriticalSection(&g_cs);
cout<<"开始写"<<endl;
LeaveCriticalSection(&g_cs);
}
int main()
{
InitializeCriticalSection(&g_cs);
int buffer[10]={1,2,3,4,5,6,7,8,9,10};
DWORD dw1,dw2;
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)readThread,buffer,0,&dw1);
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)writeThread,buffer,0,&dw2);
return 0;
}
ricky921
2006-11-16
打赏
举报
回复
也是初学者 mark!
OOPhaisky
2006-11-13
打赏
举报
回复
这个问题简单阿,不论windows还是linux都很简单,楼主可以利用任何一种同步/互斥机制加以完成,比如利用锁机制就可以阿,读写前加锁,完成后释放锁。
rickerliang
2006-11-13
打赏
举报
回复
用两个event就可以搞定
睡在床板下_
2006-11-13
打赏
举报
回复
同步 机制..临界区 就可解决
tzh8478
2006-11-13
打赏
举报
回复
哪位高手能不能给我具体代码,我是个初学者,实在搞不懂……
sdulyx
2006-11-13
打赏
举报
回复
to tzh8478(小浩):把数组放到共享内存里
tzh8478
2006-11-13
打赏
举报
回复
我知道是要用锁机制来完成,问题是数组是怎样传递到线程中去呢?而且怎样才能让读写操作共享这个数组?
飞哥
2006-11-12
打赏
举报
回复
其实很简单
建立互斥 :临界区,mutex,线程锁
飞哥
2006-11-12
打赏
举报
回复
强烈建议你看 windows 核心编程
第二部分第7章,线程调度
虚拟机中
创建
并行
线程
的代码
只是小东西而已,就是最初学习OS的
一道
小
题目
,希望可以帮助大家学习
Java进阶学习——Java多
线程
知识的理解
从
一道
题目
引入2.
创建
线程
2.1.继承Thread类2.2.实现Runnable接口3.
线程
的生命周期4.
线程
安全4.1.为什么需要
线程
安全?4.2.如何实现
线程
安全?5.
线程
池5.1.为什么需要
线程
池?5.2.
创建
线程
池5.2.1.
创建
可缓存
线程
池...
java关于
线程
的
题目
_关于
线程
的
一道
Java题
下面是一段有关Java
线程
的
题目
。以下是一个Java类的代码:1publicclassTest{23inta=0;4intb=0;5intx=0;6inty=0;78publicstaticvoidmain(String[]args)throwsInterruptedException{9Testt...
关于多
线程
的
一道
题目
题目
大意:有四个
线程
,每个
线程
输出1,2,3,4,设计程序使得依次输出:1111222233334444 求解思路:
创建
一个对象o,当四个
线程
依次输出1后,检测已经输出的次数count,如果输出次数为1,2,3,那么让
线程
进入对象o...
记
一道
多
线程
训练
题目
记给训练营师弟们的
一道
多
线程
题目
文章目录记给训练营师弟们的
一道
多
线程
题目
一、
题目
要求二、解法一三、解法二 一、
题目
要求 Task <Execute by Order> tips: 1、开三个
线程
,这三个
线程
在一个死循环中...
C++ 语言
64,660
社区成员
250,515
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章