多线程的一点点

本文介绍Windows环境下使用CreateThread函数创建多线程的方法。详细解释了函数参数的意义,并通过示例代码展示了如何创建并启动多个线程。同时,文章还讨论了线程执行的不确定性及其在操作系统中的调度机制。
 

创建多线程的函数

HANDLE CreateThread(

 LPSECURITY_ATTRIBUTES lpThreadAttributes, //新线程的Security属性,NULL表示缺省

DWORD dwStackSize,                                               //线程拥有自身堆栈大小 0默认表示1M

LPTHREAD_START_ROUTINE lpStartAddress,  //新线程开始地址,函数的指针

LPVOID lpParameter,                                                //新线程的参数

DWORD dwCreateFlags,                                        //开始标志,默认为立即开始

LPWORD lpThread                                                  //新的线程ID,不需要可传入为空

)

如果该函数调用成功则返回一个Handle,调用失败则返回FALSE,可用GetLastError()获取原因

当CreateThread函数被调用时,CreateThread开启一个新的线程,该线程调用线程函数(LPTHREAD_START_ROUTINE),而原来的线程继续进行,即线程函数被异步的执行

int main(int argc, char* argv[])
{
 HANDLE hThread[10];
 DWORD ThreadID[10];
 for (int i=0; i<10; i++)
 {

  hThread[i] = CreateThread(0,0,ThreadFunc,&i,0,ThreadID);
 }
 return 0;
}

DWORD WINAPI ThreadFunc(LPVOID n)
{
 int *m = (int *)n;

 cout<<*m<<endl;
 return 0;
}

线程函数必须有以下特点

1.返回值为DWORD,

2.调用约定为WINAPI //__stacall

3.参数有且只有一个,并且为LPVOID类型

注意:

线程执行的次序无法保证,线程之间执行的次序可看为随机

context Switches(线程切换??)可以在任何时刻发生

线程对于小的改变有很高的敏感,在抢先式多任务调度中,每个线程被允许一个固定的timeslice(时间片),然后控制权就会转移.

线程并不总是立即启动

代码下载地址: https://pan.quark.cn/s/a4b39357ea24 在计算机视觉技术中,数据集扮演着训练和评估模型的核心角色。Labelme作为一个广受欢迎的开源工具,能够支持用户以交互方式对图像进行标注,而COCO(Common Objects in Context)则是一种被广泛采纳的数据集标准格式,适用于包括物体检测、图像分割在内的多种任务。本文将详细阐述如何将Labelme生成的标注数据转换为COCO数据集的标准格式。 Labelme标注的图像在输出为JSON格式时,会包含以下核心内容: 1. `version`: 指明JSON文件的版本信息。 2. `flags`: 目前未定义或保持为空,预留用于未来的功能扩展。 3. `shapes`: 列表形式存储对象的形状信息,每个形状项包含`label`(对象类别名称),`points`(构成对象边缘的多边形顶点),以及`shape_type`(通常为“polygon”)。 4. `imagePath`和`imageData`: 提供原始图像的存储路径和二进制数据,便于后续图像的还原。 5. `imageHeight`和`imageWidth`: 明确标注图像的垂直和水平尺寸。 COCO数据集的标准格式中定义了三种主要的标注类型: 1. Object instances(目标实例):主要用于执行物体检测任务。 2. Object keypoints(目标上的关键点):适用于人体姿态估计相关应用。 3. Image captions(看图说话):用于生成图像的文本描述。 COCO的JSON结构中包含以下基本组成部分: 1. `images`:记录图像的基本属性,包括`height`(高度)、`...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值