线程类C++多线程框架(一)--------- new一下就启动一个线程
之前笔者几篇文章介绍了改线程类的文章. 关联文章的地址
class COperatingSystem
{public:COperatingSystem();~COperatingSystem();virtual bool createThread(CThread *mThread,unsigned long stack_size=8*1024)=0;virtual void sleepSec(unsigned long sec)=0;protected:CThread *p_thread;
};
class CThread
{public:CThread(const char *m_thread_name);~CThread();void threadEntry(CCountingSem *pSemaphore);protected:virtual bool initializeThread();virtual void mainLoop()=0;COperatingSystem *p_opration_system;char *p_thread_name;};
class COperatingSystemFactory
{public:static COperatingSystem *newOperatingSystem();static CCountingSem *newCountingSem(unsigned int init);static CMutex *newMutex(const char *pName=NULL);};
class CCountingSem
{public:CCountingSem();~CCountingSem();virtual bool Get(Mode mode = kForever, unsigned long timeoutMS = 0) = 0;virtual bool Post(void) = 0;};
class CMutex
{public:CMutex(const char *pName = NULL);~CMutex();virtual bool Lock()=0;virtual bool UnLock()=0;protected:char *mutex_name;
};
时间好比一条小溪,它能招引我们奔向生活的海洋;时间如同一叶扁舟,它将帮助我们驶向理想的彼岸;时间犹如一支画笔,它会指点我们描绘人生的画卷。
class TestThread:public CThread
{public:TestThread(const char *m_name);~TestThread();virtual void mainLoop();
};
//然后实现mainLoop方法:
void TestThread::mainLoop()
{while(1){printf("%s :hello world\n",p_thread_name);}
}
TestThread *a=new TestThread("Thread A");
文章结束给大家分享下程序员的一些笑话语录: 人脑与电脑的相同点和不同点,人脑会记忆数字,电脑也会记忆数字;人脑会记忆程序,电脑也会记忆程序,但是人脑具有感知能力,这种能力电脑无法模仿,人的记忆会影响到人做任何事情,但是电脑只有程序软件。比尔还表示,人脑与电脑之间最重要的一个差别就是潜意识。对于人脑存储记忆的特别之处,比尔表示,人脑并不大,但是人脑重要的功能是联络,人脑会把同样的记忆存储在不同的地方,因此记忆读取的速度就不相同,而这种速度取决于使用的频率和知识的重要性。人脑的记忆存储能力会随着年龄增长而退化,同时记忆的质量也会随着年龄退化。经典语录网
转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/05/22/3093760.html
线程类C++多线程框架(一)--------- new一下就启动一个线程相关推荐
- Java自学-多线程 启动一个线程
Java 创建一个线程的三种方式 多线程即在同一时间,可以做多件事情. 创建多线程有3种方式,分别是继承线程类,实现Runnable接口,匿名类 步骤 1 : 线程概念 首先要理解进程(Process ...
- 多线程面试题之启动一个线程是run()还是start()?他们有什么区别
3.启动一个线程是run()还是start()?他们有什么区别启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行.这并不意味着线程就会立即运 ...
- python 多线程 setdaemon_python使用Thread的setDaemon启动后台线程教程
多线程编程当中, 线程的存在形态比较抽象. 通过前台线程后台线程, 可以有效理解线程运行顺序.(复杂的多线程程序可以通过设置线程优先级实现) 后台线程与前台线程的直接区别是, 1)setDaemon( ...
- JavaWeb 项目时 启动一个线程
介绍:最近在项目中,需要在启动项目时启动一个线程进行业务操作,在网上查找资料后准备采取监听的实现方式. 1首先创建一个类MqMsgTransformationListener 集成ServletCon ...
- 关于启动一个线程监控队列的替代方案
项目背景: 操作对象:一个定长的任务队列 队列状态:任务队列中的任务会在一定时间后完成,完成后需要移出队列,然后重新计算队列剩下的长度. 队列的操作大致分为两类: 一类是查询队列状态,看队列里面还剩下 ...
- 启动一个线程是用run()还是start()?
启动一个线程是调用start()方法,使线程就绪状态,以后可以被调度为运行状态,一个 线程必须关联一些具体的执行代码,run()方法是该线程所关联的执行代码. 转载于:https://www.cnbl ...
- 设计两个个线程模拟存取款操作,其中一个线程每次随机存1~1000元钱,另外一个线程取1-1000元钱,如果余额不足,则取款失败,提示余额不足。写出程序(考虑并发问题)。
设计两个个线程模拟存取款操作,其中一个线程每次随机存1~1000元钱, 另外一个线程取1-1000元钱,如果余额不足,则取款失败,提示余额不足. 写出程序(考虑并发问题). import java.u ...
- Thread线程类及多线程
1.进程.线程.并发.并行是什么? 1)进程:操作系统中可以运行多个任务(程序),这些运行的任务(程序)被称为进程.程序的运行产生进程(内存空间.程序执行的堆栈),可以这样说,进程是作为操作系统分配资 ...
- Java并发编程—Thread类的start()方法是如何启动一个线程的?
目录 一:Java线程介绍 二:Java线程入口分析 三:Java线程的创建 四:总结 周末抽了点时间,研究了下HotSpot是如何创建Java线程的,顺便总结一下.文中引用的源码里删除很多细节,只保 ...
最新文章
- 二维指针*(void **)的研究(uC/OS-II案例)
- lintcode:Singleton 单例
- LeetCode LCP 33. 蓄水(暴力枚举)
- Kafka 慌了!这个中间件,要火了?
- 20180326-1777-1.2-UMLDOC
- jQuery插件开发代码
- HTML5 前端原生 WebSocket 通信
- IDEA 打包、Spring Boot Maven plugin 打包可执行 Jar 程序
- linux中fb0和fb1同时显示数据,Linux frame buffer驱动设计与实现
- 螃蟹保存方法保存时间_活面包蟹怎么保存?面包蟹能保存多久
- 什么电子邮箱正式?企业工作邮箱大全,一般白领用什么邮箱账号?
- VMware虚拟机如何开启雷电模拟器的VT?
- git revert回退时提示One or more files are in a conflicted state
- 1 Linux Kali忘记用户名教程
- 【第二季】Arcgis地图制图基础|(一)Arcgis地图符号制作
- 用scratch3.0做游戏(1)
- win7下Matlab7打不开,显示javax.swing.borderEmptyBorder.init(Unknow Source)
- 做思维导图的软件有哪些?MindNow思维导图好用
- 什么是Android进程(app)保活、进程保活的方案
- HTML和JSP的区别,以及各自的优缺点
热门文章
- 为什么只有360公开支持华为系统,其他公司都不敢表态?
- 最新数据显示,全国有580万人被限制乘坐高铁,大家怎么看?
- Visual Studio 2008 Beta 2 VPC寿命延长
- FIFO IP设计说明
- Windows® CE 系统中的同步机制
- 一种User Mode下访问物理内存及Kernel Space的简单实现
- python括号的区别_Python中类-带括号与不带括号的区别
- mod游戏什么意思计算机,MOD运算
- GPU Gems1 - 14 透视阴影贴图(Perspective Shadow Maps: Care and Feeding)
- 基于springboot多模块项目使用maven命令打成war包放到服务器上运行的问题