POCO C++例程整理--有关线程
2017-03-20 18:28
183 查看
转自: http://qtlinux.blog.51cto.com/3052744/1698951
本文主要整理了网上见到的,以及自己编写的有关隘poco的例子,本着开源共享的精神,供大家参考,加快poco框架库的学习和使用,加快自己在项目上的应用,加速产品的设计与开发.
例子一: 传入对象
在Poco中,将入口函数抽象为一个类Runnable,该类提供void run()接口,用户需要继承至该类来实现自定义的入口函数。Poco将线程也抽象为一个类Thread,提供了start, join等方法,如下:
定义一个Thread对象,调用其start方法并传入一个Runnable对象来启动线程,使用的方法比较简单
例子二:传入一个定义好的类中的函数
如果你的线程的入口函数在另一个已定义好的类中,那么Poco提供了一个适配器来使线程能够从你指定的入口启动,并且无需修改已有的类:
例子三:直接传入函数和参数
Thread::start除了接收Runnable对象之外,还可以传入函数和参数
例子四:线程局部变量存储
ThreadLocal类为开发者提供了更为简洁的TLS机制使用方法,TLS机制用来保存这样一些变量:它们在不同的线程里有不同的值,并且各自维护,线程不能访问其他线程中的这些变量。
在一个线程修改的内存内容,对所有线程都生效。这是一个优点也是一个缺点。说它是优点,线程的数据交换变得非常快捷。说它是缺点,一个线程死掉了,其它线程也性命不保; 多个线程访问共享数据,需要昂贵的同步开销,也容易造成同步相关的BUG。
如果需要在一个线程内部的各个函数调用都能访问、但其它线程不能访问的变量(被称为static
memory local to a thread 线程局部静态变量),就需要新的机制来实现。这就是TLS。
例子五:综合性例子
本文主要整理了网上见到的,以及自己编写的有关隘poco的例子,本着开源共享的精神,供大家参考,加快poco框架库的学习和使用,加快自己在项目上的应用,加速产品的设计与开发.
例子一: 传入对象
在Poco中,将入口函数抽象为一个类Runnable,该类提供void run()接口,用户需要继承至该类来实现自定义的入口函数。Poco将线程也抽象为一个类Thread,提供了start, join等方法,如下:
定义一个Thread对象,调用其start方法并传入一个Runnable对象来启动线程,使用的方法比较简单
如果你的线程的入口函数在另一个已定义好的类中,那么Poco提供了一个适配器来使线程能够从你指定的入口启动,并且无需修改已有的类:
Thread::start除了接收Runnable对象之外,还可以传入函数和参数
ThreadLocal类为开发者提供了更为简洁的TLS机制使用方法,TLS机制用来保存这样一些变量:它们在不同的线程里有不同的值,并且各自维护,线程不能访问其他线程中的这些变量。
在一个线程修改的内存内容,对所有线程都生效。这是一个优点也是一个缺点。说它是优点,线程的数据交换变得非常快捷。说它是缺点,一个线程死掉了,其它线程也性命不保; 多个线程访问共享数据,需要昂贵的同步开销,也容易造成同步相关的BUG。
如果需要在一个线程内部的各个函数调用都能访问、但其它线程不能访问的变量(被称为static
memory local to a thread 线程局部静态变量),就需要新的机制来实现。这就是TLS。
相关文章推荐
- POCO C++例程整理--有关线程 推荐
- c++ 有关webBrowser控件的一些整理
- POCO C++库学习和分析 -- 线程 (三)
- C++中有关volatile关键字的作用--阻止编译器将其变量优化缓存到寄存器(和线程相关)(转自百度)
- POCO C++库学习和分析 -- 线程 (四)
- C/C++语法知识精华整理(2)-栈与堆、内存四大区域、 全局变量、线程技术、位字段、函数返回值副本机制等
- POCO C++库学习和分析 -- 线程 (一)
- POCO C++库学习和分析 -- 线程 (二)
- POCO C++库学习和分析 -- 线程 (一)
- POCO C++解析之一 一般线程
- 【C++再学习】【05】有关类的一些知识点整理
- linux+gtk+c/c++ 开发资料收集整理
- 请教一个有关线程的问题
- 对论坛中有关数据类型转换的整理(ZZ)
- 全面整理的C++面试题
- 有关C++多态的一些测试
- 有关表格边框的css语法整理
- 整理有关Ajax的文章
- 有关IIS HACK的一些方法整理
- 有关表格边框的css语法整理