水木社区手机版
首页
|版面-编程技术(Programming)|
新版wap站已上线
返回
1/1
|
转到
主题:Go语言看着要完啊
4楼
|
chaobill
|
2023-05-26 21:43:03
|
展开
go 现在是中国很多 web 的为了追求性能玩
go 的优点是各种语言的都能上手,缺点是各种语言的都觉得别扭
【 在 leadu 的大作中提到: 】
: go性能不怎么样
https://benchmarksgame-team.pages.debian.net/benchmarksgame/box-plot-summary-charts.html
: 功能上把一个库函数QueueUserWorkItem非要封装个关键词出来,还非得给个和语言一样的名字。
: 结果现在各个语言全都使用二代协程async/await,go这种一代协程的超级尴尬,也不好说把go就直接扔了啊
: ...................
--
FROM 36.101.223.*
71楼
|
chaobill
|
2023-05-29 08:58:47
|
展开
我这个 PHPer 总是觉得 python 别扭
【 在 hgoldfish 的大作中提到: 】
: go 语言成不了 python 的全面加强版。不然 AI 用的就是 go 而不是 python 的。
: python 的语法更加灵活,随时可以使用反射,可以动态修改类。用运行效率换来语言的方便性。
: 不过仅在网络编程语言,golang 确实能够大部分取代 python 了。python 社区唯一的问题是没有在 py2.7 -> py3k 大版本升级的时候,把 gevent 直接集成到 python 虚拟机。这个时间丢失了,后面 python 在网络编程领域就节节败退了。
: ...................
--
FROM 112.66.23.*
72楼
|
chaobill
|
2023-05-29 09:01:30
|
展开
协程还引发一个协程安全问题, 原子化问题。写单线程的旧代码怎么也没想到中间的变量居然会被其他人改
【 在 leadu 的大作中提到: 】
: 1.ui线程问题。比如有一个后台协程,在需要更新界面内容的情况下,如何回到ui线程?非ui线程直接操作ui会失败的。
: 2.协程敏感的api范围问题。io操作的范围非常广,并口串口usb蓝牙等等。就算是大类网络和文件,也有查询dns和查看文件信息这种,可以异步但大家一般用的都是同步版本的api.协程敏感的api设计对这些如何处理的?
: 3.性能问题。你不是正经的c++程序员出身的,所以很多c++或是传统程序员的习惯你不太清楚。
: ...................
--
FROM 112.66.23.*
91楼
|
chaobill
|
2023-06-03 08:28:56
|
展开
有线程,可以多跑,为什么需要协程呢?
【 在 leadu 的大作中提到: 】
: 我去,第一个这种简单问题都需要详细解释。我再用尽可能简单的语言重新描述一下
: 现在假设线程t执行了一个协程c1,协程c1内部有若干操作,其中有1次磁盘同步blocking写入,写入之后更新ui。很常见的场景,对吧
: 当线程t执行到第一次磁盘写入的时候,按照你之前的Jave Green thread说法,下面是编译器或运行时会隐式把这个同步写入转换成异步写入,异步写入开始之后,协程c1挂起,释放线程t。
: ...................
--
FROM 112.66.23.*
95楼
|
chaobill
|
2023-06-03 12:37:17
|
展开
那么, cpu 对协程可有什么优化么
【 在 hgoldfish 的大作中提到: 】
: 但奇葩的是。。stackless python 不使用 async/await 语法,从实现上看,也不搞状态机,而是修改 python 解释器,切换 python 的调用堆栈。后来这个玩法被移植到 cpython 里面弄成 greenlet 这个库。
: 这种语法和实现方式,现在 c++ 那伙人叫 stackful. 反过来了。。
: 各个主流语言的协程大体在三个地方有区别:
: ...................
--
FROM 112.66.23.*
108楼
|
chaobill
|
2023-06-04 07:50:25
|
展开
once await ,never back.
【 在 hgoldfish 的大作中提到: 】
: async/await 语法会传染,只要一个系统决定用 async,那么它就只能抛弃现有的 sync 程序库,使用 async 的版本。原本很好用的 requests 已经相当成熟,为了支持 asyncio,python 社区不得不再发明新的 aiohttp. 简单的 http client 当然有人搞,但是 websocket, grpc 呢。。g
: rpc 应该是到接近 2021 年才搞出 asyncio 版本的。这纯粹是社区人力的浪费。还不如当初好好用 gevent 省事呢。
--
FROM 36.101.223.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版