线程操作相关

简介:

 
 
  1. #include <Windows.h> 
  2. #include <tchar.h> 
  3. #include <stdio.h> 
  4.  
  5. #define MAX_THREADS 5 
  6.  
  7. DWORD WINAPI ThreadProc(LPVOID lpParam); 
  8.  
  9. typedef struct _THREAD_PARAM{ 
  10.     DWORD i; 
  11.     DWORD dwRandom; 
  12.     DWORD dwData; 
  13. }THREAD_PARAM,*LPTHREAD_PARAM; 
  14.  
  15. DWORD WINAPI ThreadProc(LPVOID lpParam){ 
  16.     LPTHREAD_PARAM lpData; 
  17.     lpData = (LPTHREAD_PARAM)lpParam; 
  18.     printf("TID = %u,\t Parameter = %u,%u,%u\n",GetCurrentThreadId(),lpData->i,lpData->dwRandom,lpData->dwData); 
  19.     HeapFree(GetProcessHeap(),0,lpData); 
  20.     return 0; 
  21.  
  22. INT main(void){ 
  23.     LPTHREAD_PARAM lpData; 
  24.     DWORD dwThreadId[MAX_THREADS]; 
  25.     HANDLE hThread[MAX_THREADS]; 
  26.     INT i; 
  27.  
  28.     for(i=0;i<MAX_THREADS;i++){ 
  29.         lpData = (LPTHREAD_PARAM)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(THREAD_PARAM)); 
  30.  
  31.         if(lpData == NULL){ 
  32.             printf("HeapAlloc error;\n"); 
  33.             ExitProcess(2); 
  34.         } 
  35.         lpData->i = i; 
  36.         lpData->dwData = 100; 
  37.         lpData->dwRandom = rand(); 
  38.  
  39.         hThread[i] = CreateThread(NULL,0,ThreadProc,lpData,0,&dwThreadId[i]); 
  40.         if(hThread[i] == NULL){ 
  41.             ExitProcess(i); 
  42.         } 
  43.     } 
  44.     system("pause"); 
  45.     return 0; 

 











本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/629320,如需转载请自行联系原作者

相关文章
|
Java 调度
线程的yield操作
线程的yield操作的作用是让出目前正在执行的线程放弃当前的执行,让出CUP权限,使得CPU去执行其他的线程。处于让步状态的JVM层面的线程状态仍然是RUNNABLE状态,但是该线程所对应的操作系统层面的线程从状态上来说会从执行状态编程就绪状态。线程yield时,线程放弃和重占CPU的时间是不确定的,可能是刚刚放弃CPU,马上又获得CPU执行权限,重新开始执行。
65 0
|
7月前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错之Apache Flink中的SplitFetcher线程在读取数据时遇到了未预期的情况,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
System.InvalidOperationException:“线程间操作无效: 从不是创建控件“xxx”线程它。”
System.InvalidOperationException:“线程间操作无效: 从不是创建控件“xxx”线程它。”
542 0
|
6月前
|
调度
线程操作:锁、条件变量的使用
线程操作:锁、条件变量的使用
32 1
|
7月前
|
Linux 调度
【linux线程(一)】什么是线程?怎样操作线程?
【linux线程(一)】什么是线程?怎样操作线程?
|
7月前
|
存储 算法 Linux
一起聊聊内核中的线程:操作函数、进程状态、task_struct、举个例子、
一起聊聊内核中的线程:操作函数、进程状态、task_struct、举个例子、
229 0
|
Java
【Java】Java中让线程休眠一段时间再进行如何操作?
【Java】Java中让线程休眠一段时间再进行如何操作?
129 0
|
存储 Python
Python语言如何在一个单独的线程中进行快速的IO操作
Python语言如何在一个单独的线程中进行快速的IO操作
131 0
Python语言如何在一个单独的线程中进行快速的IO操作
|
安全 算法 调度
411操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(四)
411操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁
171 1
411操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(四)
|
算法 调度 C++
410操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(三)
410操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁
229 1
410操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(三)

相关实验场景

更多
下一篇
无影云桌面