游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1890|回复: 1

讨论一下线程同步。。

[复制链接]

50

主题

236

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
发表于 2011-10-16 13:26:00 | 显示全部楼层 |阅读模式

  1. BOOL                g_Open = TRUE;
  2. HANDLE                g_ThreadHandle = NULL;


  3. DWORD WINAPI ThreadFunc(LPVOID lpParam)
  4. {
  5.         [color=#FF6699]while (true)[/color]
  6.         {
  7.                 if (g_Open == FALSE)
  8.                 {
  9.                         // do something

  10.                         g_Open = TRUE;
  11.                 }

  12.                 Sleep(1);
  13.         }

  14.         return 0;
  15. }


  16. int main()
  17. {
  18.         g_ThreadHandle = CreateThread(NULL, 0, ThreadFunc, NULL, 0, NULL);

  19.         [color=#FF6699]while (true)[/color]
  20.         {
  21.                 if (g_Open == TRUE)
  22.                 {
  23.                         // do something

  24.                         g_Open = FALSE;
  25.                 }

  26.                 Sleep(1);
  27.         }

  28.         return 0;
  29. }

  30. // [color=#FF6699]PS:以上粉色文字为更正部分[/color]
复制代码


这种0消耗的线程同步,应该没有哪种比这同步还快的吧(包括InterlockedExchange)?
请问这种线程同步有人经常用么?
大家都来讨论一下。

86

主题

2251

帖子

2384

积分

金牌会员

Rank: 6Rank: 6

积分
2384
QQ
发表于 2011-10-16 18:28:00 | 显示全部楼层

Re:讨论一下线程同步。。

多看看成熟的多线程代码。
你这个写法,就算变量能有来做同步,也错了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-8 23:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表