VS2013多线程

线程有两种实现方式,继承自Thread和实现Runnable接口,线程分优先级,好像没有分类的

线程完整的生命周期有几种状态:新建 就绪 运行 阻塞 死亡

多线程可以实现并行处理,避免了某项任务长时间占用CPU时间。要说明的一点是,目前大多数的计算机都是单处理器(CPU)的,为了运行所有这些线程,操作系统为每个独立线程安排一些CPU时间,操作系统以轮换方式向线程提供时间片,这就给人一种假象,好象这些线程都在同时运行。由此可见,如果两个非常活跃的线程为了抢夺对CPU的控制权,在线程切换时会消耗很多的CPU资源,反而会降低系统的性能。

vs2013中配置多线程的使用环境 - qq_39907831的博客 - CSDN博客
https://blog.csdn.net/qq_39907831/article/details/78749465

【windows–进程和线程】多线程编程(比较完整的简单介绍) - 都江堰操作系统(DJYOS)-王建忠 - CSDN博客
https://blog.csdn.net/wangjianzhongfj/article/details/7334833

VS线程学习笔记(C++) - ZYunxin的博客 - CSDN博客
https://blog.csdn.net/ZYunxin/article/details/78299581

多线程使用的函数:

pthread_create_百度百科
https://baike.baidu.com/item/pthread_create/5139072?fr=aladdin

VS2013/MFC基于对话框编程:[18]多线程_百度经验
https://jingyan.baidu.com/article/597a064363ba76312b5243a1.html
(里面最后的代码有BUG)
改为下面:

void CMFCApplication1Dlg::OnBnClickedStartthread()
{
	// TODO:  在此添加控件通知处理程序代码
	if (flag)
	{
		flag = false;
		GetDlgItem(IDC_StartThread)->SetWindowTextW(L"打开子线程");

	}
	else
	{
		flag = true;
		AfxBeginThread(Thread1, this, THREAD_PRIORITY_ABOVE_NORMAL);
		AfxBeginThread(Thread2, this);
		
		GetDlgItem(IDC_StartThread)->SetWindowTextW(L"关闭子线程");


	}

}

最高   THREAD_PRIORITY_HIGHEST 线程在高于正常优先级上两级上运行。

高于正常 THREAD_PRIORITY_ABOVE_NORMAL 线程在正常优先级上一级上运行。

正常   THREAD_PRIORITY_NORMAL 线程在进程的优先级类上正常运行。

低于正常 THREAD_PRIORITY_BELOW_NORMAL 线程在低于正常优先级下一级上运行。

最低   THREAD_PRIORITY_LOWEST 线程在低于正常优先级下两级上运行。

空闲   THREAD_PRIORITY_IDLE 对于实时优先级类线程在优先级16上运行对于其他优先级类线程在优先级1上运行。

实时 THREAD_PRIORITY_TIME_CRITICAL

AfxBeginThread的介绍/基本用法 - sd2131512的专栏 - CSDN博客
https://blog.csdn.net/sd2131512/article/details/6601228

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值