当前位置: 首页 > news >正文

江门建站网站模板长沙网页设计培训班哪家好

江门建站网站模板,长沙网页设计培训班哪家好,品牌建设工作经验,网络文化经营许可证和icp的区别线程是进程中的一个实体#xff0c;是被系统独立调度和分派的基本单位。一个进程可以拥有多个线程#xff0c;但是一个线程必须有一个进程。线程自己不拥有系统资源#xff0c;只有运行所必须的一些数据结构#xff0c;但它可以与同属于一个进程的其它线程共享进程所拥有的…线程是进程中的一个实体是被系统独立调度和分派的基本单位。一个进程可以拥有多个线程但是一个线程必须有一个进程。线程自己不拥有系统资源只有运行所必须的一些数据结构但它可以与同属于一个进程的其它线程共享进程所拥有的全部资源同一个进程中的多个线程可以并发执行。 在C/C中可以通过CreateThread函数在进程中创建线程函数的具体格式如下 [cpp] view plain copy HANDLE CreateThread(                      LPSECURITY_ATTRIBUTES lpThreadAttributes,                      DWORD dwStackSize,                      LPTHREAD_START_ROUTINE lpStartAddress,                      LPVOID lpParameter,                      DWORD dwCreationFlags,                      LPDWORD lpThreadID                     );   参数的含义如下 lpThreadAttrivutes指向SECURITY_ATTRIBUTES的指针用于定义新线程的安全属性一般设置成NULL dwStackSize分配以字节数表示的线程堆栈的大小默认值是0 lpStartAddress指向一个线程函数地址。每个线程都有自己的线程函数线程函数是线程具体的执行代码 lpParameter传递给线程函数的参数 dwCreationFlags表示创建线程的运行状态其中CREATE_SUSPEND表示挂起当前创建的线程而0表示立即执行当前创建的进程 lpThreadID返回新创建的线程的ID编号 如果函数调用成功则返回新线程的句柄调用WaitForSingleObject函数等待所创建线程的运行结束。函数的格式如下 [cpp] view plain copy DWORD WaitForSingleObject(                            HANDLE hHandle,                            DWORD dwMilliseconds                           );   参数的含义如下 hHandle指定对象或时间的句柄 dwMilliseconds等待时间以毫秒为单位当超过等待时间时此函数返回。如果参数设置为0则该函数立即返回如果设置成INFINITE则该函数直到有信号才返回。 一般情况下需要创建多个线程来提高程序的执行效率但是多个线程同时运行的时候可能调用线程函数在多个线程同时对一个内存地址进行写入操作由于CPU时间调度的问题写入的数据会被多次覆盖所以要使线程同步。 就是说当有一个线程对文件进行操作时其它线程只能等待。可以通过临界区对象实现线程同步。临界区对象是定义在数据段中的一个CRITICAL_SECTION结构Windows内部使用这个结构记录一些信息确保同一时间只有一个线程访问改数据段中的数据。 使用临界区的步骤如下 1初始化一个CRITICAL_SECTION结构在使用临界区对象之前需要定义全局CRITICAL_SECTION变量在调用CreateThread函数前调用InitializeCriticalSection函数初始化临界区对象 2申请进入一个临界区在线程函数中要对保护的数据进行操作前可以通过调用EnterCriticalSection函数申请进入临界区。由于同一时间内只能有一个线程进入临界区所以在申请的时候如果有一个线程已经进入临界区则该函数就会一直等到那个线程执行完临界区代码 3离开临界区当执行完临界区代码后需要调用LeaveCriticalSection函数离开临界区 4删除临界区当不需要临界区时调用DeleteCriticalSection函数将临界区对象删除 下面的代码创建了5个线程每个线程在文件中写入10000个“hello” [cpp] view plain copy #include stdio.h  #include windows.h  HANDLE hFile;  CRITICAL_SECTION cs;//定义临界区全局变量  //线程函数在文件中写入10000个hello  DWORD WINAPI Thread(LPVOID lpParam)  {      int n  (int)lpParam;      DWORD dwWrite;      for (int i  0;i  10000;i)      {          //进入临界区          EnterCriticalSection(cs);          char data[512]  hello\r\n;          //写文件          WriteFile(hFile, data, strlen(data), dwWrite, NULL);          //离开临界区          LeaveCriticalSection(cs);      }      printf(Thread #%d returned successfully\n, n);      return 0;  }  int main()  {      char *filename  hack.txt;      WCHAR name[20]  { 0 };      MultiByteToWideChar(CP_ACP, 0, filename, strlen(filename)  1, name, sizeof(name) / sizeof(name[0]));      //创建文件      hFile  CreateFile(name, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);      if (hFile  INVALID_HANDLE_VALUE)      {          printf(CreateFile error.\n);          return 0;      }      DWORD ThreadID;      HANDLE hThread[5];      //初始化临界区      InitializeCriticalSection(cs);      for (int i  0;i  5;i)      {          //创建线程并调用Thread写文件          hThread[i]  CreateThread(NULL, 0, Thread, (LPVOID)(i  1), 0, ThreadID);          printf(Thread #%d has been created successfully.\n, i  1);      }      //等待所有进程结束      WaitForMultipleObjects(5, hThread, TRUE, INFINITE);      //删除临界区      DeleteCriticalSection(cs);      //关闭文件句柄      CloseHandle(hFile);      return 0;  }
http://www.hkea.cn/news/14420157/

相关文章:

  • 网站怎么做才不会被封网站开发综合实训总结
  • 电子商务网站设计代做记账公司
  • 哪个浏览器任何网站都可以访问有什么推广的平台
  • 网站展示英文都用什么字体不属于营销型网站的特点
  • 学院网站建设时间控制变更申请表将page转换为wordpress
  • 河南省建设厅门户网站装修网站建设优缺点
  • 安平县外贸网站建设仿腾讯网站源码
  • 双鸭山住房和城乡建设局网站十大外贸电商平台有哪些
  • 学习网站建设好找工作吗网页视频怎么下载到本地视频手机
  • 商城网站建设需求一个网页大概多少钱
  • 进入网站空间拼车网站的建设雨实现
  • 太原制作网站国家房管局官网查询系统
  • 镇江网站推广排名永济做网站单价
  • 网站快速备案公司制作二维码免费软件
  • 给企业做网站的公司有哪些wordpress显示未开启stmp服务
  • 禁忌网站安徽省建设干校网站
  • 网站免费建站 图标一个网站完整的html代码
  • 网站不备案会有什么影响丝瓜app官网下载安装io
  • 免费单页网站建设高端网站建设公司哪里济南兴田德润实惠吗
  • 辽宁建设工程信息网场内业绩什么意思网站没有收录从哪开始做优化
  • 微信小程序是什么模式长沙seo网站排名优化
  • 简述网站建设评估的指标有哪些南通学校网站建设
  • 专业营销型网站定制wordpress 笑话站
  • 免费源码网站天建设工程类公司网站
  • 建设银行黑龙江省分行官方网站网站图片被盗连怎么办
  • 尧都区建设厅官方网站免费的云服务器哪家好
  • 利用vs做网站阳江招聘网的拼音
  • 广州网站建设 推广公司佛山优化网站排名收费
  • 滨州淘宝网站建设公司网站优化怎么做
  • 北京网站开发哪家好沈阳百度seo关键词排名优化软件