当前位置: 首页 > 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://wiki.neutronadmin.com/news/286491/

相关文章:

  • 杭州网站的优化网站总体设计
  • 辽宁网站备案要多久网站开发的毕设开题报告
  • 茶叶网站建设网页设计制作站酷设计网页版
  • 淮北市矿务局工程建设公司网站学校资源网站建设
  • 电话营销网站建设建设银行企业银行网站打不开
  • 世界上前端做的最好的网站北京到安阳高铁时刻表查询
  • 江门广告网站推广技巧网站设计配色
  • 做网站 广州信息网官网
  • 免费网站软件推荐友情链接可以随便找链接加吗
  • 昆明网站制作代理wordpress config
  • 店铺的网站怎么做wordpress 登录表单
  • 盐城公司网站建设扬州住房城乡建设局网站
  • 手机怎么访问微网站工厂外包小件加工
  • 企业北京响应式网站制作wordpress文章转发
  • 网站没收录可以做排名眉山市建设局网站
  • 晋江网站建设旅行社网站策划
  • 免费在线网站建设网站模板备份
  • 芜湖网站建设优化入侵网站怎么做弹出
  • 高碑店建设局网站小辣椒网站开发
  • 小昆山网站建设网站建设php带数据库模板
  • 做网站的关键技术丽水网站seo
  • 小白怎么做网站搬家教程免费推广公司
  • 网站开发免费视频播放器中国房地产行情分析
  • 旅游网站建设计划书网站游戏网站开发设计菲律宾
  • 网站建设小说北京网站建设出名 乐云践新
  • 自己的电脑做网站可以吗公司英文
  • 做设计用图片的网站百度收录接口
  • 济宁住房和城乡建设局网站首页马达加工东莞网站建设
  • 东莞网站制作购买wordpress升级php7.1
  • 策划会展网站建设免费看电视剧的网站2021