API函数CreateThread可以用来创建一个线程。以下是函数的原型
在创建线程之后,需要线程来执行某些工作,这时候,执行的工作就交给上述的第三个参数 线程的函数来实现
线程函数的定义形势如下:
线程函数中的参数也就是创建进程函数中的第四个参数。
在创建线程时,就直接把参数传给线程函数了。
下面的一个例子来示例下线程的工作过程
其实很简单,就通过线程函数创建线程之后,再实现线程函数,就可以工作了。
----------------------------------------------------------
在多线程程序的执行过程中,多个线程会访问同一块数据,临街资源。为了避免他们同时访问,造成不确定的影响,需要将临街资源进行保护。完成这个过程就叫做线程同步。
我们可以用创建互斥对象来实现之
互斥资源的创建函数CreateMutex
具体的实现请看下面的例子:
-------------------------------------
线程同步的方法除了互斥资源,还有其他的方法。其原理和方式都差不多。
线程的同步的时候,会调用一些方法来造成其他的线程进行等待。其实这里面也有隐患的。那就是由于某种原因,一直等待下去,造成死锁。
要避免死锁,就需要养成良好的编程规范,同时在设计上让程序合理。