当前位置: 首页 > news >正文

可以做qq空间背景音乐的网站破解WordPress站点

可以做qq空间背景音乐的网站,破解WordPress站点,kratos的WordPress,竞价单页系统今天,在C的基础上来进行提升,学习VC多线程编程。 线程:是为了提高系统内程序的并发执行程度而提出来的概念,他是比进程更小的能独立运行的基本单位。 线程的组成: 线程的内核对象:操作系统用它来对线程实施…

今天,在C++的基础上来进行提升,学习VC++多线程编程。


线程:是为了提高系统内程序的并发执行程度而提出来的概念,他是比进程更小的能独立运行的基本单位。

线程的组成:

线程的内核对象:操作系统用它来对线程实施管理;内核对象也是系统用来存放线程统计信息的地方。

线程栈:它用于维护线程在执行代码时所需要的所有函数参数和局部变量。

创建线程的方法与区别:(C/C++/MFC)

1.CreateThread()----WIN32API函数;

2._beginthreadx()----MS对C Runtime库的扩展SDK函数;

3.AfxBeginThread()----MFC中创建线程的函数。

CreateThread:函数原型如下


lpThreadAttributes:指向SECURITY_ATTRIBUTES结构体指针,传递为NULL,让线程使用默认安全性;

dwStackSize:设置线程初始化栈大小,为0则默认使用与调用该函数的线程相同的栈空间大小;

lpStartAddress:线程回调函数;

lpParameter:参数;

dwCreationnFlags:设置用于控制线程创建的附加标记;值若为0,线程创建之后立即运行;

lpThreadId:线程ID。

#include "stdafx.h"
#include <iostream.h>
#include <windows.h>
DWORD WINAPI Func(LPVOID lpParameter)
{cout<<"子线程在运行..."<<endl;return 0;
}
int main(int argc, char* argv[])
{HANDLE h1;//创建线程句柄h1 = CreateThread(NULL,0,Func,NULL,0,NULL);//创建线程cout<<"主线程在运行..."<<endl;Sleep(100);CloseHandle(h1);//关闭线程句柄return 0;
}


AfxBeginThread():函数原型如下


CWinThread* AfxBeginThread(AFX_THREADPROC pfnThreadProc,LPVOID pParan,int nPriority=THREAD_PRIORITY_NORMAL,UINT nStackSize=0,DWORD dwCreateFlag=0,LPSECURITY_ATTRIBUTES lpSecurityAttrs=NULL
);

线程终止运行:最好的方式是让线程函数自动返回。

有关线程的函数:

暂停:DWORD SuspendThread(HANDLE hThread);

恢复:DWORD ResumeThread(HANDLE hThread);

睡眠:VOID Sleep(DWORD dwMilliseconds);

Sleep函数可使线程资源放弃它的剩余时间片;Sleep(n)系统将会在n毫秒内线程不可调度;Sleep(0)告诉系统调用线程释放剩余时间片。并迫使系统重新调度线程。

切换:BOOL SwicthToThread(VOID);与Sleep(0)相似;不同之处在于允许优先级较低的线程运行。


线程同步:当有多个线程访问共享资源而不使资源被破坏时或当一个线程需要将某个任务已经完成的情况通知另外一个线程时需要使用线程同步机制。

线程同步的方法:

临界区同步:临界区是指包含共享资源的一段代码块;

内核同步(信号量、互斥量、事件)。

以下代码列出了临界区同步与互斥量同步。

#include "stdafx.h"
#include <windows.h>
#include <iostream.h>
DWORD WINAPI Func1(LPVOID lpPraam);
DWORD WINAPI Func2(LPVOID lpParam);
//定义全局变量
int count=1000;
//定义临界区
CRITICAL_SECTION cs;
//定义互斥对象句柄
HANDLE hMutex;
int main(int argc, char* argv[])
{//初始化临界区------1InitializeCriticalSection(&cs);//创建互斥对象------2hMutex = CreateMutex(NULL,FALSE,NULL);//创建两个线程HANDLE h1 = CreateThread(NULL,0,Func1,NULL,0,NULL);HANDLE h2 = CreateThread(NULL,0,Func2,NULL,0,NULL);//等待线程结束WaitForSingleObject(h1,INFINITE);WaitForSingleObject(h2,INFINITE);//释放临界区DeleteCriticalSection(&cs);//关闭互斥量句柄CloseHandle(hMutex);//关闭线程句柄CloseHandle(h1);CloseHandle(h2);return 0;
}
//线程1回调函数
DWORD WINAPI Func1(LPVOID lpPraam)
{while (TRUE){if(count>0){//进入临界区//EnterCriticalSection(&cs);WaitForSingleObject(hMutex,INFINITE);cout<<"线程1:"<<count--<<endl;//离开临界区//LeaveCriticalSection(&cs);ReleaseMutex(hMutex);}else{break;}}return 0;
}
//线程2回调函数
DWORD WINAPI Func2(LPVOID lpPraam)
{while (TRUE){if(count>0){//EnterCriticalSection(&cs);WaitForSingleObject(hMutex,INFINITE);cout<<"线程2:"<<count--<<endl;//LeaveCriticalSection(&cs);ReleaseMutex(hMutex);}else{break;}}return 0;
}



死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。


http://www.yayakq.cn/news/745121/

相关文章:

  • 永久免费的ppt网站2022年国内重大新闻事件
  • 十大购物网站排名高端大气的网站
  • 如何在百度里做推广网站个人主页源码下载
  • 如何进行网页设计和网站制作我的家乡html网页模板
  • 拨付网站建设经费的请示中国建筑是国企还是央企
  • 沧州网站建设的技术方案全景校园网站开发
  • asp.net 登陆两个网站做外贸都有哪些网站
  • 先做网站后台还是前台自己做本地网站
  • 建设部规范网站手机网站开发哪家好
  • 响应式网站开发费用企业网站建设的一般要素包括6
  • wordpress做出的成都网站seo费用
  • 做类似返利网的网站有哪些软件开发项目管理软件哪个好
  • 网站开发公司飞沐舆情监测软件
  • 现在的网站做多大尺寸的广东莞建建设工程有限公司
  • html5 图片网站如何做网站么
  • 如何做营销型手机网站优化网页设计制作课程设计报告
  • 适配网站建设模版优秀网站设计分析
  • 杭州建设网站广州建设网站
  • 体育直播网站制作开发电子商务管理系统
  • 网站建设写什么经营范围响应网站 整屏
  • 门户网站建设安全管理制度商城网站建设论文
  • 网站添加定位怎么做dedecms大气金融企业网站模板
  • 广州网站优化快速获取排名最好用的磁力搜索神器
  • 网站的建设方法有广告位怎么找广告商
  • 厦门450元网站建设公司广州 环保 凡人网站建设
  • 建立自己的网站软件有社保网站做员工用工备案
  • 深圳网站建设的基本知识科技公司网页设计素材
  • 网站设计制作价钱低天门网站建设设计
  • 同里做网站建设主管部门网站查询
  • 建设主题网站的顺序是什么意思竞价推广账户托管费用