Chapter 8 Thread Synchronization in User Mode
来源:互联网 发布:fifaonline3数据库查询 编辑:程序博客网 时间:2024/06/05 08:47
做了个小程序,用来验证Interlocked的效果:
上图分别是注释掉“标记1”和“标记2”后的截图,和取消注释后的截图,下面是代码:
#include <windows.h>#include <stdio.h>#include <float.h>#include <process.h>#include <conio.h>#include <iostream>#include <tchar.h>using namespace std;LONG g = 0, flag = 0, T = 1, F = 0;void threadfun1(void *pNull);void threadfun2(void *pNull);int main(){TCHARszBuf[10240] = {0};// = TEXT("Thread Interlocked Experiment BEGIN!!!\n");HANDLEharr[2];harr[0] = (HANDLE)_beginthread(threadfun1, 0, szBuf);harr[1] = (HANDLE)_beginthread(threadfun2, 0, szBuf);// 如果不等两个线程结束,则极有可能主函数结束了,而那两个线程没结束!;// 也就是说,屏幕上将无任何输出!;WaitForMultipleObjects(2, harr, TRUE, INFINITE);_tprintf(szBuf);printf("%d\n", g);getch();return 0;}void threadfun1(void *pNull){// 标记1while (InterlockedExchange(&flag, T) == T);g++;int i, len, j;TCHAR *pStr = (TCHAR*)pNull;for (i = 0; i < 10; ++i){for (j = 0; j < 10; ++j){len = lstrlen(pStr);pStr[len++] = '1';pStr[len] = 0;}len = lstrlen(pStr);pStr[len++] = '\n';pStr[len] = 0;Sleep(10);// 这样使实验的效果更明显;}InterlockedExchange(&flag, F);}void threadfun2(void *pNull){// 标记2while(InterlockedExchange(&flag, T) == T);g++;int i, len, j;TCHAR *pStr = (TCHAR*)pNull;for (i = 0; i < 10; ++i){for (j = 0; j < 10; ++j){len = lstrlen(pStr);pStr[len++] = '2';pStr[len] = 0;}len = lstrlen(pStr);pStr[len++] = '\n';pStr[len] = 0;Sleep(10);}InterlockedExchange(&flag, F);}
- Chapter 8 Thread Synchronization in User Mode
- Windows Thread Synchronization in User Mode
- Thread Synchronization Mechanisms in Python
- inline hook in user mode ---single thread safe ( test passed in window7 )
- Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/Synchronization
- Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/Synchronization
- Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/Synchronization
- Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/Synchronization
- !!!Chapter 6 Synchronization
- Chapter 7 Process Synchronization
- Java Thread Synchronization
- Thread Synchronization for Beginners
- Boost.Thread.Synchronization
- Thread Synchronization for Beginners
- ECMA-262-5 in detail. Chapter 2. Strict Mode.
- Thread Synchronization - UI Thread and Worker Thread
- Linux thread communication and synchronization
- synchronization in Linux kernel
- Flex loaderInfo swf模块获取url传递的参数
- eclipse常用快捷键
- QFP、LQFP、TQFP、FQFP封装的区别
- 面向对象方法和结构化方法比较,形式化方法的实际运用困难,及如何结合使用这三种
- Split a string by spaces — preserving quoted substrings — in Python/Jython
- Chapter 8 Thread Synchronization in User Mode
- Java_数组操作
- E: 子进程 已安装的 post-removal 脚本 返回了错误号 2
- panel画线
- 项目中如何添加CorePlot开源框架(重温Xcode链接静态库)
- 键盘上每个键作用!!! (史上最全的)
- 纯爷们儿 为了梦想放弃成为Instagram第二个工程师的机会
- Android-RIL流程分析
- 如何有效地帮助新人融入项目中