由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - ASIO异步一问
相关主题
C++ ASIO异步一问看了一下C#的async await
用ASIO写TCP/IP,同步还是异步 ?说了半天异步是大势所趋没什么疑问了
An interview project: asynchronous socket programmingTypescript是不是实际上反 functional programming 的?
ASIO TCP传送JSON如何知道包结束?求建议:C++的TCP/IP编程库
JSONCPP和ASIO能否联合使用(C++11)?本站身家超过32亿美元的著名程序员魏老师 (转载)
boost vs C++11express.js的作者弃node转投go
服务器端纯的asio的异步怎么写?再挖一个语言坑:scala流年不顺
ASIO发送返回消息时需要timeout吗?akka能和C++程序通信吗?
相关话题的讨论汇总
话题: asio话题: read话题: 服务器话题: handle话题: std
进入Programming版参与讨论
1 (共1页)
b***i
发帖数: 3043
1
我的项目的具体设计是一个嵌入式的服务器用Linux, C++11, ASIO, JSON等
客户端向服务器请求connect
连接后,服务器向客户端发送一个问题,
客户端回答
服务器回答对了
客户端开始发送JSON
服务器解析后进行动作,然后发送返回的信息
问题在最后一行:如果这个动作需要时间,我这些动作要在handle_read里面进行,还
是另起一个线程?我在进行这些动作的时候是否可以锁定信号灯?或者是比较简单的
lock?比如我要写一个变量,但是多个server可能同时访问这个变量,所以要lock再写。
目前采用boost的一个例子:
void start_read() {
// Set a deadline for the read operation.
input_deadline_.expires_from_now(readTimeout_);
// Start an asynchronous operation to read a newline-delimited message.
asio::async_read_until(socket_, input_buffer_, endChar, std::bind(&TCP_
Session::handle_read, shared_from_this(), std::placeholders::_1));
//asio::async_read(socket_, input_buffer_, asio::transfer_all(), std::
bind(&TCP_Session::handle_read, shared_from_this(), std::placeholders::_1));
}
如果是同步的,我大可以做这些事情。我初学ASIO,感觉不应该可以在异步里面使用信
号灯等技术,就像在paint里面做这些一样,会不会死机啊?这个handle_read最后是怎
么被呼叫的? 是操作系统生成一个新线程来回叫还是在统一的回叫,还是只有一个统
一的单线程?
b***i
发帖数: 3043
2
稍微想了一下,是不是io_service::run那里就在等着系统提供一个事件,然后它就呼
叫handle_read, 什么的,这样的话就好理解了。我做一点Lock也是可以的。反正我自
己是起一个线程才运行run的。

写。

【在 b***i 的大作中提到】
: 我的项目的具体设计是一个嵌入式的服务器用Linux, C++11, ASIO, JSON等
: 客户端向服务器请求connect
: 连接后,服务器向客户端发送一个问题,
: 客户端回答
: 服务器回答对了
: 客户端开始发送JSON
: 服务器解析后进行动作,然后发送返回的信息
: 问题在最后一行:如果这个动作需要时间,我这些动作要在handle_read里面进行,还
: 是另起一个线程?我在进行这些动作的时候是否可以锁定信号灯?或者是比较简单的
: lock?比如我要写一个变量,但是多个server可能同时访问这个变量,所以要lock再写。

1 (共1页)
进入Programming版参与讨论
相关主题
akka能和C++程序通信吗?JSONCPP和ASIO能否联合使用(C++11)?
C++11使用感受及一些问题boost vs C++11
大牛们讨论一下异步编程吧服务器端纯的asio的异步怎么写?
同步编程真郁闷ASIO发送返回消息时需要timeout吗?
C++ ASIO异步一问看了一下C#的async await
用ASIO写TCP/IP,同步还是异步 ?说了半天异步是大势所趋没什么疑问了
An interview project: asynchronous socket programmingTypescript是不是实际上反 functional programming 的?
ASIO TCP传送JSON如何知道包结束?求建议:C++的TCP/IP编程库
相关话题的讨论汇总
话题: asio话题: read话题: 服务器话题: handle话题: std