V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Nugine0  ›  全部回复第 6 页 / 共 7 页
回复总数  122
1  2  3  4  5  6  7  
所有语言的异步 IO 都需要操作系统的非阻塞支持,比如 epoll 。
应用注册 IO,当 IO 完成后,系统会通知应用处理对应事件,这样一个线程就能同时进行多个 IO 操作,不用被阻塞调用卡住。

拿 js 举例,无栈异步语法分为回调、Promise 、async/await 三种,第一种是回调地狱,第二种链式调用开火车,第三种用同步格式写异步,最人性化。

再拿 go 举例,有栈异步语法与同步一致,调度器会在进行 IO 时自动把协程切走。py 在没有 async 语法时用的是 gevent 有栈协程,把同步操作自动换成异步,无需修改代码。

js 本身就是事件循环,无栈协程是加糖解决回调地狱。

py 有两种协程,gevent 的有栈协程,asyncio 的无栈协程,都是为了提高 IO 效率。

go 是有栈协程,m:n 调度,多个线程上可以运行多个协程,卡住时其他线程还会偷走多余的任务。本来一个线程只能进行一个 IO 操作,现在可以同时进行多个,提高 IO 效率。

c++20 的是无栈协程,但可能有隐式分配。

Rust 的是无栈协程,没有隐式分配,调度器要自己选择第三方库,基本上都有工作窃取算法。其中的无栈协程可以不用分配直接放栈上执行,也可以交给调度器作为顶层 future 执行。而且 Rust 没有 GC,实时性可以有保证。

个人认为,在各种语言中,Rust 的无栈协程是最轻量的。
2020-06-08 08:29:37 +08:00
回复了 noble4cc 创建的主题 程序员 现在转 golang 到趋势变缓了吗?
两年前开始学 rust,现在风向要变成 rust 了。
等 2022 再猜下一个风向技术。
说明 V2EX 引流效果显著,应该多展示
2020-06-02 01:12:18 +08:00
回复了 axihe 创建的主题 Node.js 非常真诚的想和老哥们讨论新出的 Deno 和 Node.js
deno 承担包管理,提供标准库,提供一系列工具,拥抱 web 标准,部分模块与浏览器直接兼容,这都是大一统的思想。对于个人来说,它不会限制开发的灵活性,而是减轻了在各种配置中折腾的痛苦。

安全性限制发展?如果向用户要权限会限制发展,那这个实现一定是有问题的,正常权限不会引起反感。

吃饭看现在,追新看未来,deno + rust 的组合前景美好,值得投资。
2020-06-02 00:55:52 +08:00
回复了 axihe 创建的主题 Node.js 非常真诚的想和老哥们讨论新出的 Deno 和 Node.js
npm 兼容层有人在做,只要有轻松迁移的方案和第一个杀手级框架,相信会出现大规模迁移到 deno 的浪潮,这需要时间。

后端方面,ts 从语言设计、开发效率和表达力等方面讲都是一流的,用 ts 写后端是一个值得尝试的选项,deno 还缺成熟的后端框架。

DENO_DIR 是可以指定的,不一定是全局,这就提供了 vendor 和项目隔离。

deno 有锁文件,能查出模块是否被篡改,不需要手动验证。

去中心化的包管理也能中心化,想想,如果 npm 下场提供 deno 模块托管会怎么样,这就能解决生态问题。

默认 ts 是一个巨大优势,没错,是巨大优势。
ts 是 js 超集,它的类型系统就是最大的卖点,不能接受动态火葬场的人无论如何也不会回去写 js,反过来转移却很轻松。向 ts 的单向转移趋势已经非常明显了。
2020-05-16 13:53:45 +08:00
回复了 chocotan 创建的主题 程序员 联想拯救者 y9000x 安装使用 archlinux 的体验
同 y9000x 。
先调硬盘模式才能装双系统。
装 ubuntu 不能外放,只能用耳机。
从 windows 重启到 ubuntu 就不能用耳机口,必须关机启动。
windows 使用正常,ubuntu 缺声音。
性能确实挺香的,但有以上缺陷,对产品目标群体很不友好。
2020-05-15 00:08:35 +08:00
回复了 Nugine0 创建的主题 JavaScript Deno 中文手册
@cy476571989 确实能解决很多翻译中的痛点。
2020-05-14 16:42:17 +08:00
回复了 h404bi 创建的主题 JavaScript Deno 1.0
进一步了解可以看 Deno 中文手册,官方的由于 github 部分被墙而看不了。
https://www.v2ex.com/t/671658
2020-05-14 12:18:04 +08:00
回复了 h404bi 创建的主题 JavaScript Deno 1.0
从某种角度上讲,deno 就是 node 修正各种失误后的样子。py2 到 py3 也是一个大撕裂,后来 py2 死了,时间会给出答案。
ctrl+c ctrl+v
2020-05-03 13:53:12 +08:00
回复了 songkeys 创建的主题 问与答 V 友们有专门为自己写的软件吗?欢迎分享!
用 Rust 写了一个玩具 web 框架,作为自己的网站后端,完成度不高。在测试环境性能比较理想,真实环境要加限制器,以免打爆其他组件。
2020-04-06 21:29:01 +08:00
回复了 iyg429 创建的主题 随想 烟,是个好东西
有害化学物质而已,自己交生命税可以,别带着其他人一起交
2020-04-06 21:20:13 +08:00
回复了 lohiecan 创建的主题 推广 编程语言在线运行代码是如何实现的?
道理我都懂,在线执行速度和 SSD 有啥关系?
2020-03-05 10:19:41 +08:00
回复了 dreamerlv3ex 创建的主题 问与答 edge 丝般顺滑, chrome 柔顺丝滑
firefox yes
2019-12-05 15:53:32 +08:00
回复了 css3 创建的主题 Python 一个函数,一个变量,整懵逼了
```
$ cat a.py
import time

def get_time():
return time.strftime(
'%Y-%m-%d %H:%M:%S',
time.localtime(time.time()))

class TimeStr(str):
def __str__(self):
return get_time()
def __repr__(self):
return get_time()

b = TimeStr()
for i in range(5):
print(f"{i+1}: {b}")
time.sleep(1)

$ python a.py
1: 2019-12-05 15:50:57
2: 2019-12-05 15:50:58
3: 2019-12-05 15:50:59
4: 2019-12-05 15:51:00
5: 2019-12-05 15:51:01
$
```
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   721 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 22:50 · PVG 06:50 · LAX 14:50 · JFK 17:50
Developed with CodeLauncher
♥ Do have faith in what you're doing.