boost IO流和本地线程存储
2013-12-20 10:03
225 查看
#include <iostream> #include <fstream> #include <iterator> #include <string> using namespace std; // 一个使用boost::thread_specific_ptr线程本地存储的示例,value将不受其它线程影响. #include <boost/thread/thread.hpp> #include <boost/thread/tss.hpp> #include <cassert> boost::thread_specific_ptr<int> value; void increment() { int* p = value.get(); ++*p; } void thread_proc() { value.reset(new int(0)); // initialize the thread's storage for (int i=0; i<10; ++i) { increment(); int* p = value.get(); cout<<*p<<endl; assert(*p == i+1); } } void test001() { boost::thread_group threads; for (int i=0; i<5; ++i) threads.create_thread(&thread_proc); threads.join_all(); } int main() { test001(); ifstream if1("/root/test.txt"); if (!if1) { cerr << "err: unable to open input file: " << __FILE__ << endl; return -1; } ofstream of1("/root/test_of.log"); if (!of1) { cerr << "err: unable to open ouput file:" << __FILE__ << endl; return -2; } // 通过>>与<<操作将输入文件写入输出文件 string word; while (if1 >> word) of1 << word << '\n'; // 通过输入&输出跌代器与copy函数将输入文件写入输出文件 istream_iterator<string> is_iter(if1); ostream_iterator<string> os_iter(of1, "\n"); //以字符串的形式从输入流拷贝到输出流 copy(is_iter, istream_iterator<string>(), os_iter); of1.close(); if1.close(); cout<<"ok"<<endl; return 0; }
相关文章推荐
- 线程局部存储(或者叫线程本地存储)
- DLL, 线程本地存储
- .NET:线程本地存储、调用上下文、逻辑调用上下文
- 线程本地存储(Thread Local Storage, TLS)
- Atitit usrqbg1821 Tls 线程本地存储(ThreadLocal Storage 规范标准化草案解决方案ThreadStatic
- 线程本地存储TLS(Thread Local Storage)的原理和实现——分类和原理
- 线程本地存储 (TLS)
- muduo库阅读(7)——线程本地存储
- 在windows下调试线程本地存储(TLS)时遇到的一个问题
- 线程本地存储 (TLS)
- 线程本地存储—ThreadLocal,map实现
- 线程本地存储 (TLS)
- 线程本地存储(Windows和Linux)
- zthread学习 实例七 线程本地存储
- boost::thread编程-线程本地存储
- 线程本地存储TLS(Thread Local Storage)的原理和实现——分类和原理
- 【Demo 0096】线程本地存储
- 【C++11】thread_local/TLS/线程本地存储
- Java并发编程---ThreadLocal(线程本地变量、线程本地存储)
- 线程本地存储