之前在一篇
基于TCP套接字实现的简单Demo 一文中用到了线程函数CreateThread()函数来
创建新的线程.下面以一个最简单的多线程例子来说明.
C-代码如下:
1 //最简单的创建多线程实例 2 #include <stdio.h> 3 #include <windows.h> 4 5 //子线程函数 6 DWORD WINAPI ThreadFun(LPVOID pM) 7 { 8 printf("小刘子线程:%d\n", GetCurrentThreadId()); 9 return 0; 10 } 11 12 13 //主函数,所谓主函数其实就是主线程执行的函数。 14 int main() 15 { 16 17 18 HANDLE handle = CreateThread(NULL, 0, ThreadFun, NULL, 0, NULL); 19 CloseHandle(handle); 20 21 printf("小刘主线程\n"); 22 //WaitForSingleObject(handle, INFINITE); 23 return 0; 24 }
运行结果如下:
输出结果有三种情况:
虽然主线程和子线程是同时进行,但是很明显每次
执行的步骤并非一样.这里面就存在一个线程同步
的问题.所以在下一篇文章中,我将介绍如何使线程
同步.