- 主题:c++什么时候能提供协程版的读写socket
这样各种库才能统一使用协程
--
FROM 61.48.14.*
用 go 和 java 吧。这两个语言从创立开始就要求所有的 IO 接口不止是 socket,连 file io 都是异步的。
【 在 stub 的大作中提到: 】
: 这样各种库才能统一使用协程
--
FROM 59.61.197.*
【 在 hgoldfish 的大作中提到: 】
: 用 go 和 java 吧。这两个语言从创立开始就要求所有的 IO 接口不止是 socket,连 file io 都是异步的。
:
java不是异步的, 低版本linux下 golang的写文件也不是异步的, 会挂起线程
--
FROM 61.48.14.*
java 第一个版本的线程是绿线程,所以算异步的也对啊。现在绿线程又回归了,所以又是异步的啦。阻塞的是绿线程,不是真正的操作系统线程。
golang 后来应该都异步了吧。那一开始应该是没实现好。设计的时候就考虑弄成异步的。
【 在 stub 的大作中提到: 】
: java不是异步的, 低版本linux下 golang的写文件也不是异步的, 会挂起线程
--
修改:hgoldfish FROM 59.61.197.*
FROM 59.61.197.*
asio早就有了,只是还没进std
asio官网的例子:
asio::co_spawn(executor, echo(std::move(socket)), asio::detached);
// ...
asio::awaitable<void> echo(tcp::socket socket)
{
try
{
char data[1024];
for (;;)
{
std::size_t n = co_await socket.async_read_some(asio::buffer(data), asio::use_awaitable);
co_await async_write(socket, asio::buffer(data, n), asio::use_awaitable);
}
}
catch (std::exception& e)
{
std::printf("echo Exception: %s\n", e.what());
}
}
--
FROM 114.241.228.*
满屏的代码里面一大堆和业务无关的,看得真是难受。
【 在 z16166 的大作中提到: 】
: asio早就有了,只是还没进std
: asio官网的例子:
: asio::co_spawn(executor, echo(std::move(socket)), asio::detached);
: ...................
--
FROM 59.61.197.*
socket层的,能和业务有关才怪,哈哈
【 在 hgoldfish 的大作中提到: 】
: 满屏的代码里面一大堆和业务无关的,看得真是难受。
:
--
FROM 114.241.228.*
我指的是和 socket 读写这个业务没有关系。
和 java/go/python 比起来差远了。boost 的设计与 API 真是令人难受,没有美感。
【 在 z16166 的大作中提到: 】
: socket层的,能和业务有关才怪,哈哈
--
修改:hgoldfish FROM 59.61.197.*
FROM 59.61.197.*
using namespace 把双冒号之前的都去了 , 应该跟其他语言差不多
【 在 hgoldfish 的大作中提到: 】
我指的是和 socket 读写这个业务没有关系。
和 java/go/python 比起来差远了。boost 的设计与 API 真是令人难受,没有美感。
【 在 z16166 的大作中提到: 】
: socket层的,能和业务有关才怪,哈哈
--
修改:hgoldfish FROM 59.61.197.*
FROM 114.253.35.*
boost那坨东西,搁20年前是惊艳,现在看起来就是垃圾,毫无实用性。
提供的功能其实就是一盘醋,但是要吃得先去抓几只大闸蟹。
【 在 hgoldfish 的大作中提到: 】
: 我指的是和 socket 读写这个业务没有关系。
: 和 java/go/python 比起来差远了。boost 的设计与 API 真是令人难受,没有美感。
--
FROM 124.127.222.*