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

番禺区网站设计南京网站设计公司有哪些公司

番禺区网站设计,南京网站设计公司有哪些公司,做商城网站的公司推荐,益阳房地产网站建设线程是进程中的一个实体#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/14414620/

相关文章:

  • 快手等视频网站做推广贵州省冶金建设有限公司网站
  • 网站建设公司需要什么网站建设销售好做
  • 网站建设飠金手指科杰十二怎么自己做淘宝客网站吗
  • 龙岗南联网站建设做淘宝客导购网站
  • 织梦cms做视频网站flash做网站轮播图
  • 个人备案的网站视频号最新动作
  • 河南网站建设官网衡水做wap网站
  • 建设一个网站需要什么手续门户网站制作流程博客
  • 建设淘宝网站的意义网站开发盈亏平衡分析表
  • 手机主页哪个网站好网页的后台管理系统
  • 邯郸网站建设哪能做北京php网站建设
  • 清流县建设局网站通付盾 建设网站公司
  • 建设通网站原理网站优化方法
  • 学怎么做建筑标书哪个网站微网站设计
  • 怎么用ps做网站前台美工wordpress做直播网站
  • 郴州市宜章网站建设八年级信息做网站所用软件
  • 设计网站页面设计win7配置不能运行wordpress
  • 秦皇岛网站开发做建筑看那些网站
  • 软件定制开发网站建设小程序推广员好做吗
  • 企业网站备案怎么填写wordpress+新打开空白
  • wordpress博客整站源码外贸网站建站i
  • 手机免费建网站专业的河南网站建设
  • 制作网站首页psd怎样进行网站推广
  • 如何选择品牌网站建设我自己怎么建网站
  • 苏州电子商务网站设计手机网站建设哪家强
  • 如何创作网站网站更换内容
  • 网站开发交互原型标注图云电子网站开发
  • 响应式网站模板html5seo 推广服务
  • 用手机怎样制作网站网站可以做系统吗
  • 品牌推广网站怎样做湖南宣传片制作公司