多线程环境下OTL的使用《转载》

 

1, OTL是什么

OTL是一个数据库访问模板库,支持绝大部分数据库访问。OTL是C++写的,based on templates, 只有一个头文件,大小只有800K+。使用方便,性能也很不错

可以使用OTL访问基本上所有的数据库,在你更换数据库时不用修改任何业务代码

强烈推荐在C++开发中使用

 

2,OTL下载

http://www.veda.dk/~clr/doc/otl/otlv4_h.zip

 

3,OTL使用

参见OTL Samples: http://www.veda.dk/~clr/doc/otl/otl3_examples.htm

 

4,多线程下使用OTL时几个注意的地方

1) static int otl_connect::otl_initialize(const int threaded_mode=0);

如果在多线程环境下使用,threaded_mode设置为1

注意:即使设置为1并不代表就是线程安全(thread-safe)

实际上OTL并不是线程安全的,一个otl_connect只能同时被一个线程使用,如果在多线程环境下使用OTL,需要自己保证otl_connect对象的线程安全

 

2)otl_stream_pool

OTL支持stream pool,就是一个池,在一个otl_stream close时,把它放到池中,下次访问时可以从池中获取,实现fast reopen,提高程序性能

注意:otl_stream_pool是otl_connect的一个成员,所以要在otl_connect锁unlock之前执行otl_stream.close,否则会出现那个啥:)

即使不使用otl_stream_pool,也要在otl_connect锁unlock之前执行otl_stream.close

 

经验证,OTL在多线程环境可以稳定运行

使用otl_stream_pool可以获得一定的性能提升

转载于:https://www.cnblogs.com/kanego/articles/2244105.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值