一个很简单的多线程程序主要用于了解临界区的使用.doc

一个很简单的多线程程序主要用于了解临界区的使用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
--(完美WORD文档DOC格式,可在线免费浏览全文和下载)值得下载!

一个很简单的多线程程序,主要用于了解临界区的使用 #include #include #include #pragma comment(lib,libcmt.lib) const int NLOOP = 100; int counter = 0; void doit(void*); CRITICAL_SECTION beswap ; int main() { ?HANDLE pnt[2]; ?InitializeCriticalSection(beswap); ?pnt[0] = (HANDLE)_beginthread(doit,0,NULL); ?pnt[1] = (HANDLE)_beginthread(doit,0,NULL); ?WaitForMultipleObjects( 2, pnt, TRUE, 1000L); ?DeleteCriticalSection(beswap); ? ?return 0; } void doit(void*) { ?printf(go...\\n); ?int i, val = 0; ?for(i = 0; i NLOOP; ++i) ?{ ??EnterCriticalSection(beswap); ??val = counter; ??printf(%d\\n,val+1); ?counter = val + 1; ??LeaveCriticalSection(beswap); ?} ?printf(end...\\n); ?return ; } 目录介绍 1)Linux程序设计入门--基础知识? 2)Linux程序设计入门--进程介绍? 3)Linux程序设计入门--文件操作? 4)Linux程序设计入门--时间概念? 5)Linux程序设计入门--信号处理? 6)Linux程序设计入门--消息管理? 7)Linux程序设计入门--线程操作? 84 8)Linux程序设计入门--网络编程? 9)Linux下C开发工具介绍 具体内容 Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件和系统求助 ---------------------------------------------------------------------------- ---- 1.源程序的编译 在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器.?下面我们 以一个实例来说明如何使用gcc编译器. 假设我们有下面一个非常简单的源程序(hello.c): int?main(int?argc,char?**argv) { printf(Hello?Linux\n); } 要编译这个程序,我们只要在命令行下执行: gcc?-o?hello?hello.c gcc?编译器就会为我们生成一个hello的可执行文件.执行./hello就可以看到程序的输出 结果了.命令行中?gcc表示我们是用gcc来编译我们的源程序,-o?选项表示我们要求编译器给我们输出的可执行文件名为hello?而hello.c是我们的源程序文件. gcc编译器有许多选项,一般来说我们只要知道其中的几个就够了.?-o选项我们已经知道 了,表示我们要求输出的可执行文件名.?-c选项表示我们只要求编译器输出目标代码,而不必要输出可执行文件.?-g选项表示我们要求编译器在编译的时候提供我们以后对程序进行调试的信息. 知道了这三个选项,我们就可以编译我们自己所写的简单的源程序了,如果你想要知道更 多的选项,可以查看gcc的帮助文档,那里有着许多对其它选项的详细说明. 2.Makefile的编写 假设我们有下面这样的一个程序,源代码如下: /*?main.c?*/ #include?mytool1.h #include?mytool2.h int?main(int?argc,char?**argv) { mytool1_print(hello); mytool2_print(hello); } /*?mytool1.h?*/ #ifndef?_MYTOOL_1_H #define?_MYTOOL_1_H void?mytool1_print(char?*print_str); #endif /*?mytool1.c?*/ #include?mytool1.h void?mytool1_print(char?*print_str) {

文档评论(0)

lingyun51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档