线程操作相关

简介:
 
  1. #include <Windows.h> 
  2. #include <stdio.h> 
  3. #include <tchar.h> 
  4.  
  5.  
  6. DWORD WINAPI ThreadProc(LPVOID lpParam); 
  7.  
  8. DWORD WINAPI ThreadProc(LPVOID lpParam){ 
  9.     LPDWORD lpData; 
  10.     DWORD i = 0; 
  11.     lpData = (LPDWORD)lpParam; 
  12.     for(i=0;i<10;i++){ 
  13.     printf("TID = %u,\t Parameter = %u\ti=%u\n",GetCurrentThreadId(),*lpData,i); 
  14.     } 
  15.     ExitThread(i); 
  16.     return 0; 
  17.  
  18. INT main(void){ 
  19.     DWORD dwData; 
  20.     DWORD dwThreadId[2]; 
  21.     HANDLE hThread[2]; 
  22.  
  23.     dwData = 1; 
  24.  
  25.     hThread[0] = CreateThread(NULL,0,ThreadProc,&dwData,CREATE_SUSPENDED,&dwThreadId[0]); 
  26.  
  27.     if(hThread[0] == NULL){ 
  28.         ExitProcess(0); 
  29.     } 
  30.  
  31.     dwData = 2; 
  32.  
  33.     hThread[1] = CreateThread(NULL,0,ThreadProc,&dwData,0,&dwThreadId[0]); 
  34.  
  35.     if(hThread[1] == NULL){ 
  36.         ExitProcess(0); 
  37.     } 
  38.     Sleep(200); 
  39.     ResumeThread(hThread[0]); 
  40.     SuspendThread(hThread[1]); 
  41.     Sleep(300); 
  42.     TerminateThread(hThread[0],0); 
  43.     ResumeThread(hThread[1]); 
  44.  
  45.     WaitForMultipleObjects(2,hThread,TRUE,INFINITE); 
  46.     CloseHandle(hThread[0]); 
  47.     CloseHandle(hThread[1]); 
  48.  
  49.     system("pause"); 
  50.     return 0; 

 










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

相关文章
|
6月前
|
Java 调度
线程的yield操作
线程的yield操作的作用是让出目前正在执行的线程放弃当前的执行,让出CUP权限,使得CPU去执行其他的线程。处于让步状态的JVM层面的线程状态仍然是RUNNABLE状态,但是该线程所对应的操作系统层面的线程从状态上来说会从执行状态编程就绪状态。线程yield时,线程放弃和重占CPU的时间是不确定的,可能是刚刚放弃CPU,马上又获得CPU执行权限,重新开始执行。
29 0
System.InvalidOperationException:“线程间操作无效: 从不是创建控件“xxx”线程它。”
System.InvalidOperationException:“线程间操作无效: 从不是创建控件“xxx”线程它。”
294 0
|
3月前
|
存储 算法 Linux
一起聊聊内核中的线程:操作函数、进程状态、task_struct、举个例子、
一起聊聊内核中的线程:操作函数、进程状态、task_struct、举个例子、
65 0
|
4月前
|
监控 安全 Windows
4.3 Windows驱动开发:监控进程与线程对象操作
在内核中,可以使用`ObRegisterCallbacks`这个内核回调函数来实现监控进程和线程对象操作。通过注册一个`OB_CALLBACK_REGISTRATION`回调结构体,可以指定所需的回调函数和回调的监控类型。这个回调结构体包含了回调函数和监控的对象类型,还有一个`Altitude`字段,用于指定回调函数的优先级。优先级越高的回调函数会先被调用,如果某个回调函数返回了一个非NULL值,后续的回调函数就不会被调用。当有进程或线程对象创建、删除、复制或重命名时,内核会调用注册的回调函数。回调函数可以访问被监控对象的信息,如句柄、进程ID等,并可以采取相应的操作,如打印日志、记录信息等。
28 0
4.3 Windows驱动开发:监控进程与线程对象操作
|
9月前
|
Java
【Java】Java中让线程休眠一段时间再进行如何操作?
【Java】Java中让线程休眠一段时间再进行如何操作?
95 0
|
12月前
|
Java API 调度
Android C++系列:JNI中的线程操作
第四个参数为线程启动程序的参数,也就是函数的参数,如果不需要传递参数,它可以为 NULL 。 pthread_create 函数如果执行成功了则返回 0 ,如果返回其他错误代码。
184 0
|
存储 Python
Python语言如何在一个单独的线程中进行快速的IO操作
Python语言如何在一个单独的线程中进行快速的IO操作
Python语言如何在一个单独的线程中进行快速的IO操作
【多线程】面试官:如何利用线程工具,防止多线程同时操作一个资源?
通过前面的学习,知道了线程的利与弊,正确的使用多线程,会尽最大的可能去压榨我们系统的资源,从而提高效率,但是如果不合理使用线程,可能会造成副作用,给系统带来更大的压力,进一步的思考,如何才能防止多线程操作一个资源?
|
安全 算法 调度
411操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(四)
411操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁
134 1
411操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(四)
|
算法 调度 C++
410操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(三)
410操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁
180 1
410操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(三)

相关实验场景

更多