V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  fawdlstty  ›  全部回复第 2 页 / 共 3 页
回复总数  43
1  2  3  
2022-04-24 15:06:54 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@hankai17 很难回答。使用不同品牌 cpu 、编译为不同指令集、不同编译器的不同优化等级,估计对这个都会有影响。你可以看看这个,对原理说的很详细。http://purecpp.org/detail?id=2288 。我个人看法,效率就是 O(1),因此忽略性能问题(狗头
2022-04-24 13:38:17 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@ysc3839 你说的是底下一层,这层的做法不兼容;我说的是顶上一层,这层的做法就兼容。让我选做法我会选择最简单通用的方式。
2022-04-24 11:08:54 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@ysc3839 c 艹、c#、python 回调转异步做法是,创建原子信号量然后异步等待,同步回调里设置信号。异步等待任务收到信号后恢复执行
2022-04-24 10:39:42 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@ysc3839 所以这就是实现方式的不同咯。实际用户体验一致,比如 c 艹异步代码迁移到 python ,需要做的也是语法变为 python ,co_await 改为 await ,不会说换一种逻辑去实现
2022-04-24 10:36:09 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@forcecharlie 截止 c 艹 20 前没任何标准,这也是 c 艹标准委员会效率低下的体现。但大家并没减少 c 艹开发网络程序,都开始尝试用三方库去做网络。go 和 c 艹不完全对标,没有可比性。rust 的话,相比 c 艹 03 及以前具有极大优势,但对于 c 艹 20 及以后版本,难说。
2022-04-24 10:21:11 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@ysc3839 其实所有语言的 stackless 都是一样的,实现都是状态机+线程池管理异步任务,区别只有底层实现的代码不同、用起来给人感觉不同。对其他语言来说,我不是深度体验用户(因此对这个议题具有比较强的主观看法),不过你可以参考我以前写的一个库的源码,https://github.com/fawdlstty/SMLite ,里面有 js 和 python 的异步实现( c 艹的还没写进去)
2022-04-24 10:14:12 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@janus77 没有。看了下,也和 http 没啥关系吧
2022-04-24 10:12:28 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@ysc3839 想要实现 co_await 等待首先就必须得有一个线程池。我这儿是写死的一个线程池就一个线程。其实也可以多个
2022-04-24 10:10:55 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@FrankHB 1 、co_await 确实是半成品,直接用确实存在你说的那个问题,但我不是直接用,我用的 boost.asio ,如果这个库也存在你说的问题,那说明你用错了
2 、co_await 作为半成品的原因是,只提供了语法支持,需要自己造 awaitable 对象,c 艹 23 将在标准库引入 awaitable 对象,这代表老的 awaitable 也能继续用,因此升级也不会火葬场。即使库中的 awaitable 全体升级到 c 艹标准的 awaitable 对象,也能 ide 里全局字符串替换,几乎不会有啥问题
3 、任何技术都不可能 100%让所有人满意。我做这个初衷也不是为了在所有场合都能使用,至少,c 艹 17 及之前版本不能用。我做这个库的目的是为了方便实现 co_await 方式去等待 http 响应
2022-04-23 23:23:29 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@Danswerme c 艹 20 是不是很简单,和 js 一样(狗头
2022-04-23 23:17:42 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
c 艹语法进步了,c 艹原本的库还没能更新呢,一堆库全同步或者回调的用法,标准出来等了两年多了都还没啥好用的库,这都 2202 年了
2022-04-23 23:15:16 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@enchilada2020 c 艹的 co_await 就是微软的提案,来源就是 c#的 await 语法。用法和 python 、js 等等语言都一样。c 艹因为历史原因( c 艹标准委员会巨坑,一个特性得吵好久都没法进入标准),进度比其他语言慢的多。只能说关于 stackless 这块,勉强跟上了时代
2022-04-23 23:11:57 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@ysc3839 非高性能场合确实同步更简单,相比可以少写个 co_await 关键字。这种场合主要就看,是否考虑软件未来并发量上去的情况
2022-04-23 22:42:42 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@leimao 网络库不都是 lib?v 么? libev 、libuv 、libhv 、etc.(狗头
2022-04-23 22:33:03 +08:00
回复了 fawdlstty 创建的主题 C++ libfv:基于 C++20 的异步 HTTP 库
@Calatrava 关于连接池,这个确实没有,后期会加入 http pipeline ,实现链接复用;第二个 dns 缓存,这个得自己处理。库这边已经支持了指定服务地址的功能,也就相当于手写一个 std::map 。当然,dns 缓存这块如果你能想到较好的解决方案,我加进去也行
@vcfghtyjc 真有可能引用两次并且以不同方式引用。参见里面我备注的 xmh 大佬的答案
https://www.zhihu.com/question/456804478
作为头文件引用一次,可以调用里面的函数;作为字符串引用一次,可以做字符串处理
2020-10-08 23:31:25 +08:00
回复了 fawdlstty 创建的主题 职场话题 研究了一下关于程序员实现财务自由的方法总结
教别人财务自由来实现自己的财务自由,这个问题,我在内容里也是这么说的,我的心态是,1%的期待,99%的玩笑,可能在文章里不那么好笑
2020-09-30 23:55:29 +08:00
回复了 fawdlstty 创建的主题 职场话题 研究了一下关于程序员实现财务自由的方法总结
恩,没有例子也是一个问题,我后面看怎样找些例子来
2020-09-30 13:53:59 +08:00
回复了 fawdlstty 创建的主题 职场话题 研究了一下关于程序员实现财务自由的方法总结
我的内容免费放出来,为的是和大家一起讨论,毕竟我一个人的看法可能有问题,集思广益,总能找到正确的思路。另外不讨论内容对不对,直接否定命题本身,这种做法很没意思,说了半天得不到任何有价值的内容。
2020-09-30 13:47:05 +08:00
回复了 fawdlstty 创建的主题 职场话题 研究了一下关于程序员实现财务自由的方法总结
@cnscorpions 所以你批评了半天,表达了两个意思:

1.穷人就该穷一辈子,赚钱的方法就不该去研究
2.社会上遍地是坑,总有刁民想害朕

这样?
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3634 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 00:53 · PVG 08:53 · LAX 16:53 · JFK 19:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.