欢迎各位学弟学妹收藏操作系统上机详解,大家有空也可以看看这篇文章哦——西电计科课程学习

实验2:线程共享进程数据

一、实验目的

  1.学习创建线程实现多工作同步运行;

  2.了解线程与进程之间的数据共享关系。

二、实验内容

  在进程中定义全局共享数据,在线程中直接引用该数据进行更改并输出该数据。

三、程序框架

static int count;//全局变量,属于主进程,主进程创建的线程共享此数据。void main()
{//创建新线程//用WaitForSingleObject()等待线程运行结束
}

  创建线程函数:

HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes,//线程安全属性 DWORD dwStackSize, // 线程初始栈大小LPTHREAD_START_ROUTINE lpStartAddress, //线程函数入口地址,通常用线程函数名LPVOID lpParameter, //给新线程传递参数DWORD dwCreationFlags, //设置新线程的附加标记,为0时,新线程立即运行LPDWORD lpThreadId //用来返回新线程的线程ID,如果不感兴趣,设为NULL
);

  线程功能函数:

//在线程中修改进程的全局变量并输出
DWORD WINAPI ThreadProc(LPVOID lpParameter)
{for(count=1;count<=5;count++)   //循环5次,改变全局变量count的值{//输出count}      //线程结束
}

四、源代码

#include<stdio.h>
#include<windows.h>
static int count;//定义全局共享数据
DWORD WINAPI ThreadProc(LPVOID IpParameter)//线程函数,其中规定了线程要做的事
{printf("新线程运行!\n\n");for(count=1;count<=10;count=count+2)//在线程中直接引用count变量进行更改并输出新数据 {printf("Now,线程count = %d\n\n",count);}printf("线程等待3秒钟...\n\n");Sleep(3000);//设置3s的等待时间 return 0;//退出运行
}int main()
{count=20;printf("进程运行!\n\n进程count=%d\n\n",count);//显示count变量初值 HANDLE hEvent=CreateThread(NULL,0,ThreadProc,NULL,0,NULL);//创建新线程并定义相关线程信息 WaitForSingleObject(hEvent,INFINITE);//等待线程运行结束  CloseHandle(hEvent);//关闭句柄 printf("新线程结束!\n");printf("进程结束!\n\n");printf("Now,count = %d",count);//显示count变量的最终值 return 0;
}

五、程序运行结果

西电操作系统上机实验2相关推荐

  1. 西电操作系统上机实验3

    欢迎各位学弟学妹收藏操作系统上机详解,大家有空也可以看看这篇文章哦--西电计科课程学习 实验3:信号通信 一.实验目的   利用信号通信机制在父子进程及兄弟进程间进行通信. 二.实验内容   父进程创 ...

  2. 西电操作系统上机实验4

    欢迎各位学弟学妹收藏操作系统上机详解,大家有空也可以看看这篇文章哦--西电计科课程学习 实验4:匿名管道通信 一.实验目的   学习使用匿名管道在两个进程间建立通信. 二.实验内容   父进程创建一个 ...

  3. 西电操作系统上机实验1

    欢迎各位学弟学妹收藏操作系统上机详解,大家有空也可以看看这篇文章哦--西电计科课程学习. 实验1:创建进程 一.实验目的   学会通过基本的Windows进程控制函数,由父进程创建子进程. 二.实验内 ...

  4. 西电操作系统上机实验6

    实验6:共享主存实现进程通信 一.实验目的   进程同步是操作系统多进程/多线程并发执行的关键之一,进程同步是并发进程为了完成共同任务采用某个条件来协调他们的活动,这是进程之间发生的一种直接制约关系. ...

  5. 西电 操作系统课设 在Ubuntu18.04安装pintos

    西电 操作系统课设 在Ubuntu18.04安装pintos 前言 1. 主要步骤 2. VMware的安装 3. Ubuntu18.04的安装和配置 4. Bochs的安装 4. Pintos安装 ...

  6. 西电-数据可视化-实验五-高维非空间数据可视化(pyecharts)

    西电-数据可视化-实验五-高维非空间数据可视化 一.实验内容 在某次大型会议中,为确保会议过程安全,会场使用了电子胸牌对场内人员的移动轨迹进行了监控.现经过处理,得到了某一天内人员在场内各个区域逗留的 ...

  7. 大学操作系统上机实验

      上机实验指导书 课程名称 操作系统 主撰人  刘天波 审核人  栾方军 沈阳建筑大学信息学院 2014 年3月 课程名称:操作系统 上机学时:16 适用专业:计算机科学与技术 先修课程:C语言 一 ...

  8. 西电计算机组装实验报告,西电模电实验报告(共7篇).docx

    西电模电实验报告(共7篇) 姓名:学号: 生命科学技术学院实验报告小组成员: 实验名称: 实验报告内容基本要求: 一.实验目的:二.实验材料和仪器设备:三.实验基本原理及步骤:四.实验数据记录和结果分 ...

  9. 西电数据结构上机题目-删除单链表中介于min与max之间的结点

    希望学长的代码能给大二西电er们带来帮助(大家一定要好好学习数据结构,合理利用资源) 大家找到了什么bug或有什么改进意见可以私信我或在下方留言,我都会看的 不多说废话直接上代码 #include&l ...

最新文章

  1. GET和POST有什么区别?及为什么网上的多数答案都是错的。
  2. MyStringUtil.java String工具类
  3. 简历中能熟练使用计算机怎么写,过了计算机二级,可以在简历里写“熟练掌握Excel”吗?...
  4. 常用英雄胜率怎么刷_单排刷英雄胜率或者炸鱼方法。
  5. Docker JFrog Artifactory 7.27.10 maven私服(仓库配置篇)
  6. js rsa解密中文乱码_python解析JS爬取漫画网站--动态爬虫
  7. 导航属性没有被赋值_excel编程系列基础:操作对象RANDE的属性介绍
  8. python对列求和_对单个列求和的最快方法
  9. 在FL Studio中如何使用Patcher插件
  10. IOS根据经纬度算距离
  11. 【UG】二次开发如何调试
  12. 人工智能——国家人工智能战略行动抓手
  13. echarts关系图指向混乱
  14. 梯度弥散与梯度爆炸及其解决方法
  15. OSV 智能桌面虚拟化_教育桌面云解决方案
  16. 广州尚顶网络科技有限公司二维码防伪防窜系统
  17. 揭秘IT人才特点:中美印日四国程序员比较—兄弟连IT教育
  18. Slimming剪枝方法
  19. python经典例题图形_经典例题(Python)
  20. 正确使用Google英文版

热门文章

  1. ROS2入门教程—理解话题(Topic)
  2. 解决input中输入中文过程中会触发input事件的问题
  3. JAVA项目中如何实现图片上传?
  4. 关于散列表的大小设定
  5. python上传文件到onedrive_python-onedrive使用教程【linux备份至onedrive】 | C/C++程序员之家...
  6. sqlserver、mysql、oracle各自的默认端口号
  7. IO模型_阻塞_非阻塞_多路复用
  8. python什么证书最有价值,python哪个证书含金量高
  9. C++ 四种cast 详解
  10. 四旋翼飞行器13——欧拉中的俯仰、横滚、偏航角