海上钢琴师

色彩的图画

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  1 Posts :: 8 Stories :: 0 Comments :: 0 Trackbacks

常用链接

留言簿

我参与的团队

搜索

  •  

最新评论

  不得不承认,自从上一次做一个gps项目后,再也没有使用过多线程的知识,前几天被问到这方面的东西,竟然都想不起来,又查了些资料,加强下记忆,在此后的日子里我要建成我自己的一个封装程序库,希望也会有一个线程库。
  线程的同步方式:
  1.临界区  CRITICAL_SECTION

  一个简单的例子:
  CRITICAL_SECTION g_cs;//声明一个临界区
   char  g_Array[10];//共享资源

   UINT threadFunc1(void* pParam)
   {
         //进入临界区
         EnterCriticalSection(&g_cs);
         for(int i=0;i<10;++i)
         {
               //操作共享资源
                 g_Array[i] = 1;
         }
         //离开临界区
         LeaveCriticalSection(&g_cs);
         return 0;
    }

   UINT threadFunc2(void* pParam)
   {
         //进入临界区
         EnterCriticalSection(&g_cs);
         for(int i=0;i<10;++i)
         {
               //操作共享资源
                 g_Array[i] =2;
         }
         //离开临界区
         LeaveCriticalSection(&g_cs);
         return 0;
    }
  
    main()
   {
         //初始化临界区
         InitializeCriticalSection(&g_cs);
         //启动线程
         AFXBeginThread(threadFunc1);
         AFXBeginThread(threadFunc2);

         //等待计算
         Sleep(100);
}


   2.互斥体

posted on 2011-02-28 17:37 海上钢琴师 阅读(88) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理