- 主题:Go语言看着要完啊
【 在 hgoldfish 的大作中提到: 】
: 1. 因为协程并不天然地在线程间调度。python, javascript 和 c++ 都是手动调度,所以协程在哪个线程里面是确定的。所以直接在协程里面更新 GUI 控件是可以的。
: 2. 碰到阻塞的 IO 操作就重写一个呗。接下来看谁重写的代价比较低了。python gevent 的代价是最低的,正常只要 monkey patch 即可搞定。此外 c++ 还有 libgo 之类的方案也特别低,模拟 go 语言并且 fork system api 很方便。
: 3. go 语言我不知道,但 python 跑在虚拟机上面。greenlet 和 asyncio 的切换成本都特别低,低到只要一两条 python 字节码。你担心个啥性能?java 和 c# 也是跑在虚拟机上面,再怎么牛逼,也没法比 c++20 的协程切换强吧。
: ...................
Linux上磁盘io,协程怎么处理,既没有异步io也没办法注册到epoll,除非是支持io_uring的版本
--
FROM 120.244.22.*
【 在 gfkid 的大作中提到: 】
: chatgpt回答
: 在Linux上进行磁盘IO时,可以使用协程来处理。协程是一种用户态线程,可以在同一个线程中实现多个并发任务的执行。协程可以通过将任务划分为多个子任务来实现异步执行,从而避免了阻塞等待。
: 在没有支持IO_URING的版本中,可以使用协程库,如libco或者boost.coroutine来实现协程。这些库会在协程中使用非阻塞IO,从而避免了阻塞等待。
: ...................
核心在于不知道io什么时候完成
--
FROM 223.160.130.*
【 在 keygen 的大作中提到: 】
: 有中断
:
没用,磁盘io不像网络io
--
FROM 61.48.14.*