/*
cpp_demo.cpp
MSDN帮助手册:http://msdn.microsoft.com/zh-cn/library/ms235302(v=VS.80).aspx
只是针对CRT(C RunTime)的 _beginthread 和 _beginthreadex 函数创建多线程
MFC和WIN32 Api创建的线程,请参考其他:
运行时需要使用管理员身份运行此实例。
@author:lx
*/
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <process.h>
#include <..\crt\src\mtdll.h>
struct parameter
{
int max;
int min;
};
void work(void*);
int file_size[]={512,1024,3068,102400};
int _tmain(int argc, _TCHAR* argv[])
{
printf("starting......\n");
const int array_length=sizeof(file_size)/sizeof(file_size[0]);
struct parameter* args;
HANDLE threads[array_length];
for (int i=0;i<array_length;i++)
{
args=(struct parameter*)malloc(sizeof(struct parameter));
if (i==0)
{
args->min=0;
args->max=file_size[0];
}else
{
args->min=file_size[i-1];
args->max=file_size[i];
}
threads[i]=(HANDLE)_beginthread(work,0,args);
}
//设置等待
WaitForMultipleObjects(2, threads, TRUE, INFINITE);
printf("ending......\n");
return 0;
}
void work(void* arg)
{
struct parameter* para=(struct parameter*)arg;
printf("this is a thread:[min-max]:[%d-%d],pid is %d,id is %d\n",para->min,para->max,_getpid(),_threadid);
char* cmd=(char*)malloc(1000);
sprintf(cmd,"fsutil file createnew c:\\test.%d.bin %d",para->max,para->min);
printf("%s\n",cmd);
system(cmd);
}
分享到:
相关推荐
windows 代码 thread.c 源代码
在Windows操作系统下,C语言是一种常用的编程语言,用于开发系统级程序,如线程调度、消息队列和信号量等。这些概念是多线程编程和并发处理的关键元素,对于理解如何在Windows环境下构建高效、可靠的软件至关重要。 ...
`CThread.h`将定义`CThread`类,包括其成员函数声明,而`CThread.cpp`将实现这些函数。以下是一个简单的`CThread`类的可能实现: ```cpp // CThread.h class CThread { public: CThread(); virtual ~CThread(); ...
《Windows程序设计(C语言)》是一本深入探讨如何在Windows操作系统环境下利用C语言进行程序开发的专业教材。这本书详尽地介绍了Windows API的使用,帮助读者掌握创建原生Windows应用程序的核心技术。 首先,...
在Windows环境下,线程(Thread)是程序执行的最小单元,它允许程序同时执行多个任务。在多核或多处理器系统中,线程并行执行可以显著提高程序的效率。通常,线程库如POSIX Threads(pthread)在Unix-like操作系统上...
《Windows via C/C++》是一本深入探讨Windows操作系统核心编程的经典书籍,主要针对使用C/C++语言进行系统级开发的程序员。这本书详细介绍了如何利用这些编程语言与Windows API交互,以实现底层系统功能和高性能的...
7. **Thread Pool Timers**: 使用`CreateThreadpoolTimer`函数创建线程池定时器,它允许在单独的工作线程上执行回调,提高了效率,但创建和管理线程池有一定的开销。 在选择合适的定时器时,开发者应根据应用的具体...
在C语言中实现多线程是一项重要的编程技术,特别是在Windows环境下。本文将深入探讨如何在Windows操作系统下,利用Microsoft Visual Studio 2015(VS2015)进行C语言多线程程序的开发。我们将关注三个核心部分:线程...
在这个场景下,"windowsC++多线程加锁信号量共享内存"就是我们要探讨的核心主题。 首先,让我们了解什么是多线程。多线程是指一个进程中可以同时执行多个独立的执行流,每个流被称为一个线程。在C++中,可以通过`...
// 该调用是 Windows.Forms 组件设计器所必需的。 InitializeComponent(); // TODO: 在 InitComponent 调用后添加任何初始化 MainThread = new Thread(new ThreadStart(ThreadFunc)); MainThread.Priority = ...
线程池中的每个线程通过`threadpool_thread_function()`这样的线程主循环函数来执行任务。 在实际应用中,线程池可以用于并发处理大量短生命周期的任务,如网络请求、数据库操作等。通过合理配置线程池大小,可以...
本文将详细探讨"thread_xiancheng.zip_windows 线程_xianchengC"这个压缩包中涉及的C语言实现的Windows线程相关知识。 首先,我们看到压缩包中的"tes.cpp"和"StdAfx.cpp"是C++源代码文件。"tes.cpp"很可能包含了...
本篇文章将深入探讨如何在RT-Thread环境中实现TCP和UDP客户端的应用,以`demo_tcp.c`和`demo_udp.c`两个示例代码为蓝本,详细解析相关知识点。 首先,我们了解RT-Thread中的SAL(Software Abstraction Layer,软件...
在C和C++中,调用Windows API通常涉及使用`#include <windows.h>`头文件,并直接调用函数。而在Delphi中,Windows API函数被封装在`Windows`单元中,通过导入库函数的方式调用。对于VB,使用P/Invoke特性可以声明并...
class CThread { public: CThread(); virtual ~CThread(); // 启动线程 DWORD Start(void); // 结束线程 void End(void); // 线程执行函数 virtual void Run(void) = 0; private: static DWORD ...
在“Windows应用高级编程-C编程篇”这一主题中,我们将深入探讨如何利用C语言来开发高效、稳定且功能丰富的Windows应用程序。C语言以其强大的底层控制能力和广泛的系统支持,成为开发操作系统级程序的理想选择,尤其...
包括操作系统、开发编译环境、目标硬件平台以及仿真器等,其中操作系统使用的是Windows XP SP3,开发编译环境为Keil MDK 4.54版,目标硬件平台为魔笛stm32,仿真器为STlink,RT-Thread版本为1.1.0版。如果读者使用的...
在进行Windows 10封装的过程中,如果出现问题,可以通过检查`C:\Windows\System32\Sysprep\panther`文件夹下的`setupact.log`文件来获取更多错误信息。其中,常见的错误代码包括: - `SYSPRP Failed to remove apps...
CHAPTER 1 Getting Started with Windows 1 CHAPTER 2 Using the Windows File System and Character I/O 25 CHAPTER 3 Advanced File and Directory...APPENDIX C Performance Results 575 Bibliography 593 Index 597