多线程编程的简单介绍

来源:互联网 发布:剑网3脸型数据非法 编辑:程序博客网 时间:2024/04/28 17:04

API函数CreateThread可以用来创建一个线程。以下是函数的原型

 

在创建线程之后,需要线程来执行某些工作,这时候,执行的工作就交给上述的第三个参数 线程的函数来实现

线程函数的定义形势如下:

 

线程函数中的参数也就是创建进程函数中的第四个参数。

 

在创建线程时,就直接把参数传给线程函数了。

 

下面的一个例子来示例下线程的工作过程

 

 

 

其实很简单,就通过线程函数创建线程之后,再实现线程函数,就可以工作了。

 

----------------------------------------------------------

 

在多线程程序的执行过程中,多个线程会访问同一块数据,临街资源。为了避免他们同时访问,造成不确定的影响,需要将临街资源进行保护。完成这个过程就叫做线程同步。

 

我们可以用创建互斥对象来实现之

 

互斥资源的创建函数CreateMutex

 

 

 

具体的实现请看下面的例子:

 

 

 

-------------------------------------

 

线程同步的方法除了互斥资源,还有其他的方法。其原理和方式都差不多。

 

 

线程的同步的时候,会调用一些方法来造成其他的线程进行等待。其实这里面也有隐患的。那就是由于某种原因,一直等待下去,造成死锁。

要避免死锁,就需要养成良好的编程规范,同时在设计上让程序合理。