The Microsoft Threading Model 微软的多线程模型ITeye头条 - 超凡娱乐

The Microsoft Threading Model 微软的多线程模型ITeye头条

2019-02-01 09:02:22 | 作者: 胤运 | 标签: 线程,音讯,资源 | 浏览: 2316

windows线程分为GUI线程和worker线程。
GUI线程担任缔造窗口以及处理主音讯循环,worker担任履行朴实运算作业。
GUI线程的界说是:具有音讯行列的线程,任何一个特定窗口的音讯总是被发生这一窗口的线程抓到并处理,一切对此窗口的改动也都应该由该线程完结。
假如worker线程也发生一个窗口,那么就会有一个音讯行列随之被发生出来而且附着到此线程上,所以worker线程变成了GUI线程。这儿意思是,worker线程不能够发生窗口,对话框,音讯框,或任何其他与UI有关的东西。
  pInfo = HeapAlloc(GetProcessHeap(),
  HEAP_ZERO_MEMORY,
  sizeof(ThreadPrintInfo));

  // free data structure passed in.
  HeapFree(GetProcessHeap(), 0, pInfo);

GetTickCount()

Critical Sections (临界区)
Critical Sections 不是中心目标,因而没有handle这样的东西。和中心目标不同,它存在于进程的内存空间内。
初始化 InitializeCriticalSection()
开释  DeleteCriticalSection()

EnterCriticalSection()

LeaveCriticalSection()

最小确定时刻
不要长时刻锁住一份资源
不要在一个Critical Section之中调用sleep或许任何wait...函数
当以一个同步机制维护一份资源时,这项资源被运用的频率怎么?线程有必要多快开释这份资源,才干保证整个程序的运作很平顺。

防止Dangling Critical Sections
Critical Section的一个缺陷是:没有办法获悉进入 Critical Section的那个线程是死是活。因为 Critical Section不是中心目标,假如进入 Critical Section的那个线程完毕或许当掉了,而没有调用leave Critical Section的话,体系没有办法将该 Critical Section清楚,假如需求那样的功用,应该运用mutex


版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表超凡娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章