多线程-1

        进程是应用程序的执行实例,每个进程是由私有虚拟地址空间、代码、数据和其他系统资源组成。进程在运行时创建的资源随着进程的终止而死亡。线程,是一个独立的执行流,是进程内部的一个独立的执行单元,相当于一个子程序,对应于 visual c++ 中 CwinThread类对象。单独一个执行程序运行时,缺省地包含一个主线程,主线程以函数地址的形式出现,提供程序的启动点,如main()和WinMain()等函数。主线程终止时,进程也随之终止。根据实际需要,应用程序可以分解成许多独立执行的线程,每个线程并行的运行在同一个进程中。

        一个进程中的所有线程都在进程的虚拟地址空间中,使用该进程的全局变量和系统资源。操作系统给每个线程分配不同的CPU时间片,在某一个时刻,CPU只执行一个时间片内的线程,多个时间片的相应线程在CPU内轮流执行,由于每个时间片时间很短,所以对用户来说,方法各个线程在计算机中是并行处理的。操作系统是根据线程的优先级来安排CPU时间,优先级高的线程优先运行,优先级低的继续等待。

创建线程的函数:

HANDLE CreateThread(

 LPSECURITY_ATTRIBUTES lpThreadAttributes

  SIZE_T dwStackSize,                       // initial stack size

 LPTHREAD_START_ROUTINE lpStartAddress,    // thread function

 LPVOID lpParameter,                       // thread argument

  DWORD dwCreationFlags,                    // creation option

 LPDWORD lpThreadId                       // thread identifier

);

lpThreadAttributes是一个指针,NULL使用缺省的安全性

 dwStackSize:          初始提交的栈的大小,以字节为单位,系统四舍五入为最近的页面,页面是系统管理内存是的管理单位,0采用和调用线程一样的大小

 lpStartAddress:   Pointer to the application-defined function of type LPTHREAD_START_ROUTINE to be executed by the thread and represents the starting address of the thread.(线程入口函数地址)

lpParameter:接收参数,给线程传递参数
dwCreationFlags :
指定控制线程创建的附加标记,CREATE_SUSPENDED标记被指定,线程创建后处于暂停状态,不会运行,直到调用了ResumeThread函数。如果这个值0,线程创建后立即运行

 lpThreadId   :作为返回值,线程的标示符,线程ID号


lpStartAddress

[in] Pointer to theapplication-defined function of type LPTHREAD_START_ROUTINE to beexecuted by the thread and represents the starting address of the thread. Formore information on the thread function, seeThreadProc.

DWORD WINAPI ThreadProc(

 LPVOID lpParameter   // thread data

);//线程函数


已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值