繁体   English   中英

调用socket.remote_endpoint(boost asio库)线程安全

[英]Call to socket.remote_endpoint(boost asio library) thread safety

boost :: system :: error_code错误; const boost :: asio :: ip :: tcp :: endpoint端点= socket.remote_endpoint(错误);

我正在使用此代码从套接字获取IP,我想知道,因为如果需要互斥锁,则从多个线程调用此代码。 其他线程在对async_write,async_read,socket.shutdown和socket.close的调用中使用套接字对象。 当前,该调用周围有一个互斥锁,每次使用套接字对象进行调用时都会使用该互斥锁,但是我想删除该互斥锁,以减少多线程干扰。

基本上,在保护套接字对象免受多线程影响时,asio库并不是那么完美,因此我建议保护对socket.remote_endpoint的调用,因为存在同时调用socket.shutdown =崩溃的风险。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM