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

烟台网站建设力推企汇互联见效付款织梦网站修改使用

烟台网站建设力推企汇互联见效付款,织梦网站修改使用,优化一个网站需要多少钱,网络推广协议合同范本一个抽象的线程基类, 再来个具体的线程类并实现相关接口#xff0c;再写个主函数来调用下。上代码#xff1a; Thread.h /*Windows平台线程类实现开发环境: Win7_x64 VC2012*/#ifndef __THREAD_H__#define __THREAD_H__#pragma once#include string#include w…一个抽象的线程基类, 再来个具体的线程类并实现相关接口再写个主函数来调用下。上代码 Thread.h /* Windows平台线程类实现 开发环境: Win7_x64 VC2012 */ #ifndef __THREAD_H__ #define __THREAD_H__ #pragma once #include string #include windows.h /* 1. 线程基类, 要创建新的线程类, 只需要继承此类并实现相关接口 2. 要开启线程并运行只需要调用Start()函数 3. 未完善地方: 应该写个虚函数Stop(), 当线程过程在运行时可以设置下运行标志变量让线程 退出循环过程, 再作些清理工作, 避免暴力终止线程。 */ class CThread // 抽象的线程基类 { public: CThread(const std::string threadName noNamed); virtual ~CThread(); virtual void Run() 0; // 线程执行过程 virtual bool Start(bool bSuspended/* false*/); void Join(int timeout -1); // 等待超时时间为负时, 表示无限等待 void Resume(); // 恢复挂起的线程 void Suspend(); // 挂起线程 bool Terminate(unsigned long exitCode); // 结束线程 unsigned int GetThreadID(); // 获取线程ID std::string GetThreadName(); void SetThreadName(std::string threadName); private: bool CreateThread(bool bSuspended false);// 开始运行线程 static unsigned int WINAPI StaticThreadFunc(void* arg); // 线程函数 protected: HANDLE m_handle; std::string m_threadName; unsigned int m_threadID; volatile bool m_bRun; // 表明线程是否已成功创建(实际上与m_handle含义相同了) }; #endif Thread.cpp: #include iostream #include process.h #include Thread.h CThread::CThread(const std::string threadName) : m_threadName(threadName), m_threadID(0), m_bRun(false) { } CThread::~CThread() { printf(~CThread()\n); } bool CThread::Start(bool bSuspend/* false*/) // 创建线程并运行(默认)或挂起 { m_bRun CreateThread(bSuspend); return m_bRun; } bool CThread::CreateThread(bool bSuspend/* false*/) // 创建线程并运行(默认)或挂起 { if(!m_bRun) { if(bSuspend) m_handle (HANDLE)_beginthreadex(NULL, 0, StaticThreadFunc, this, CREATE_SUSPENDED, m_threadID); else m_handle (HANDLE)_beginthreadex(NULL, 0, StaticThreadFunc, this, 0, m_threadID); m_bRun (NULL ! m_handle); } return m_bRun; } void CThread::Join(int timeout/* -1*/) // 等待超时时间(毫秒)为负时, 表示无限等待 { if(m_handle m_bRun) { if(timeout 0) timeout INFINITE; ::WaitForSingleObject(m_handle, timeout); } } void CThread::Resume() // 恢复挂起的线程 { if(m_handle m_bRun) ::ResumeThread(m_handle); } void CThread::Suspend() // 挂起线程 { if(m_handle m_bRun) ::SuspendThread(m_handle); } bool CThread::Terminate(unsigned long exitCode) // 结束线程 { if(m_handle m_bRun) { if(::TerminateThread(m_handle, exitCode)) { ::CloseHandle(m_handle); m_handle NULL; m_bRun false; return true; } } return false; } unsigned int CThread::GetThreadID() { return m_threadID; } std::string CThread::GetThreadName() { return m_threadName; } void CThread::SetThreadName(std::string threadName) { m_threadName threadName; } unsigned int CThread::StaticThreadFunc(void* arg) // 线程函数 { CThread* pThread (CThread*)arg; // 取得线程类指针 pThread-Run(); // 执行线程过程函数 return 0; } Thread1.h #ifndef __THREAD1_H__ #define __THREAD1_H__ #pragma once #include Thread.h /* 1. 要创建一个新线程类时只需要继承CThread, 然后在Run()中实现自己的线程过程(Run()) */ class CThread1: public CThread // 线程类1 { public: CThread1(const std::string threadName noNamed); virtual ~CThread1(void); bool Start(bool bSuspended/* false*/); virtual void Run(); }; #endif Thread1.cpp #include iostream #include Thread1.h CThread1::CThread1(const std::string threadName): CThread(threadName) { } CThread1::~CThread1() { printf(~CThread1()\n); } bool CThread1::Start(bool bSuspended/* false*/) { // todo: 此处可添加一些初始化代码 return CThread::Start(bSuspended); } void CThread1::Run() { int cnt 0; while(cnt 10) { std::cout Hello m_threadName ::Run(): cnt std::endl; Sleep(200); } } main.cpp #define _CRT_SECURE_NO_WARNINGS #include iostream #include Thread1.h #define N 15 int main(int argc, char* argv[]) { char buf[20] {0}; CThread* t[N] {NULL}; for(int i 0; i N; i) { sprintf(buf, Thread%d, i1); t[i] new CThread1(buf); t[i]-Start(true); std::cout t[i]-GetThreadName() : t[i]-GetThreadID() std::endl; t[i]-Resume(); } for(int i 0; i N; i) t[i]-Join(); return 0; }
http://www.yutouwan.com/news/286491/

相关文章:

  • 苏州开设网站公司在什么地方可以做渐变色块拼接的网站
  • 宁波论坛建站模板服务器网络
  • 网站手机版下悬浮条怎么做高效网站推广
  • 娱乐建网站网站风格代码
  • 投诉举报网站 建设方案仿站源码
  • php网站开发专员招聘做刷票的网站
  • 彩票做网站成都网站建设排名
  • 特微网站首页山东平台网站建设平台
  • 河北建设厅查询官方网站礼信堂 网站开发
  • 推广网站怎么建设和维护做夜夜做网站
  • 个人网站建设方法内蒙古住房与建设官方网站
  • 大神做的动漫网站移动端应用
  • 网站模板素材下载百度竞价优缺点
  • 1免费做网站免费咨询肺部医生在线
  • 云南建网站需要多少钱在线图片编辑器好用吗
  • 网站建设需要什么能力莞城网站建设公司
  • 网站建设的技巧有哪些滨州百姓网免费发布信息
  • 做自由行的网站onedrive 做网站静态
  • 局网站建设申请哪个购物平台质量好价格合适
  • 找人做网站要准备什么百度推广登陆入口官网
  • 石家庄专业网站设计电话域名状态查询工具
  • 网站按钮设计成什么颜色原因wordpress备份恢复.wpress
  • 室内设计图网站有哪些苏州市建设厅网站首页
  • 招远市建设局网站百度推广营销方案
  • 什么网站可以做软件有哪些东西张家界网站建设的公司
  • php个人网站怎么做连云港公司做网站
  • 网站建设找好景科技汕头seo代理商
  • 做餐饮酒店网站wordpress首页名称
  • 济南网站设计制作要多久网站建设应注意什么
  • 百度双站和响应式网站的区别深圳工作服制作