V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  w568w  ›  全部回复第 8 页 / 共 22 页
回复总数  428
1 ... 4  5  6  7  8  9  10  11  12  13 ... 22  
装个 GPS Status 看看数据
63 天前
回复了 pureGirl 创建的主题 程序员 Python 中线程和协程的区别是什么
@w568w 手抖发出去了,补充一下:

最后回答一下楼主的问题:仅在 Python 语境下,就是抢占式(操作系统轮转)和非抢占式(主动 yield )协作运算的区别。
63 天前
回复了 pureGirl 创建的主题 程序员 Python 中线程和协程的区别是什么
@w568w #3 隔了半天回来看,果然大部分回复都按自己的直觉先入为主了(没有说回复不对的意思):

Python / Lua 的非抢占式协同调用(又称生成器),

C++20 / Go 的无栈(堆)抢占式微线程,

都能称为「协程」。

还有说「协程一定是单线程的」,等谈到 Java/Kotlin 有 Scheduler 参与的协程时,又要懵逼了。

另外,支持工作分发的 OpenMP 算不算协程?这也不好说。

----

至于「线程」和「协程」的区别,品一下它们的目的就知道了:

「线程」:操作系统调度 CPU 资源的最小单位。
「协程」:多程序流协作运作的机制。


「线程」是操作系统的约定,你给操作系统一个程序地址,系统就能为这个程序分配资源。
「协程」是设计上的考虑,是开发者自己设计的、让进行不同逻辑的程序之间协作的机制。

一言蔽之,这俩从概念上就八竿子打不着,根本不是一个 level 的东西。只不过现在很多协程的实现(例如无栈微线程)就是为了解决操作系统线程在协作方面存在的问题(太贵?要考虑并发?写起来麻烦?),所以往往需要涉及线程相关的知识。

看英文也能看出:为什么线程叫 thread 而不是 routine ,协程叫 coroutine 而不是 cothread ?有没有可能它俩根本不是同一种概念?
项目用一句话概述亮点就行了,具体的细节如果面试官感兴趣自然会问你。

另外这个阶段有这个履历,完全没必要钻研什么八股文了,属于自讨苦吃。

----

利益相关:我是旦挞的 maintainer 。
63 天前
回复了 pureGirl 创建的主题 程序员 Python 中线程和协程的区别是什么
1. python 中有 GIL 所以不支持多个线程同时运行

2. 协程又是什么和线程的区别是什么

我怎么没看懂前后关系?

正经回答:「协程」是一个过度滥用的概念(以及营销术语),你不说清楚具体语境,就有一百种不同的解释。

掰扯这个词本身没什么意思,先说明白你想问的对象是什么。
63 天前
回复了 darkscope 创建的主题 分享创造 写了个大模型加持的 shell 命令工具
同类工具挺多的,之前还用过 shell-gpt
63 天前
回复了 kentxxq 创建的主题 程序员 大家新年好, 凌晨 3 点被攻击了...求助
哪儿买的域名? NS 记录被改了?
65 天前
回复了 Pandyyyyy 创建的主题 分享创造 反思了一下维护 500 多天的开源项目
@w568w #3 手快发出去了。重写一下:

2. 底栏的链接高亮颜色不对。

https://i.imgur.com/JF75TXG.png

3. 没有右侧目录的页面,下面的评论区会错位。比如 https://wukaipeng.com/english/grammar/course
65 天前
回复了 Pandyyyyy 创建的主题 分享创造 反思了一下维护 500 多天的开源项目
个人建议:

1. 楷体其实不是很适合技术文章,中英文混杂后阅读起来很吃力, 比如下图:

https://i.imgur.com/25Z93kB.png

还是宋体和黑体符合阅读习惯,英文就用等宽字体吧。

2. 底栏的链接高亮颜色不对。

3.
69 天前
回复了 namonai 创建的主题 职场话题 所谓 web3,大多数都是在做什么呢?
我的理解是,Web 3 的核心是「去中心化」,比如:

数据库 -> 区块链
合同 -> 智能合约
个人账户 -> 钱包
货币 -> 代币
社交平台 -> 联邦网络
中心管理 -> 社区投票

听着美好,然而去中心化不见得是好事。没有规则约束,就会有投机倒把、噱头炒作、洗钱诈骗… 这就是现在的 Web3 。

技术是无罪,但如果没法从技术层面限制人性,那技术就没什么用。更何况这种去中心化和政治权力结构本来就相互冲突,更不可能在政府治理体系下自由生长。
大可不必妄自菲薄,从你给的这几题来看,大模型训练的时候数据集里肯定有对应题解了,它只是原样背诵答案罢了。

「看到题目会写这个算法本身」值 1 块钱,「理解算法背后的思想」值 10 块钱,「实际工程中与人交流并设计架构,想到现实的独特场景可以转化成这个算法问题来解决」值 1000 块钱。
71 天前
回复了 kyonn 创建的主题 程序员 rust 如何处理 openssl 的依赖?
跨平台的话用 rustls 更好,完全不会产生外部依赖,根证书都是打包进应用的。
我翻译一下:

「探索和尝试」:华为把 Exagear 收购了,太坏了,我们只能另找开源兼容层项目

「采用了三层虚拟化技术」:我们叠了 Linux 容器、Box64 和 Wine 这三个开源技术

「首次以系统级能力实现澎湃 OS 对 Windows 游戏兼容」:PC 应用引擎什么的你别管,你就说是不是 HyperOS 的首次吧

「改写系统底层架构,能够深入到系统内核层将 GPU 调度」:我们接了个支持 Vulkan 的高通 GPU 驱动

「短期没有正式版上线的计划」:代码全是硬编码,没法拿出来见人啊
@seth19960929 #6 这个很多时候不能平替条件运算符。比如如果 v1 、v2 是有副作用的,或者要执行很耗时的计算,那就没法用 When 了。

----

另外 Go 就是 Google 做出来解决自己需求的,如果你觉得写起来难受,说明你的使用场景和 Google 那帮人不一样,就别硬用了。
73 天前
回复了 Keystroke 创建的主题 程序员 求助:家庭服务器对外发布服务的方案
有公网服务器之后,家里网络什么公网都没有也可以。

你这个服务映射的需求,frp 之类的基本都能做。

如果还没买公网服务器,也确定以后不会有服务器需求,可以考虑一下更实惠的平台即服务,比如 SakuraFrp 、网云穿、ngrok 之类的。
74 天前
回复了 Ggxw8 创建的主题 Android Root 真的还是刚需吗
我觉得有两方面的原因:

第一是 Android (不管是 Google 官方还是厂商)确实吸取了玩机经验。比较著名的就是早年 oasisfeng 的应用休眠机制、Linux/Darwin 的墓碑机制、CPU 用户态调度、主动权限管理等,现在全成为 Android 标配了。至少在调度方面,官方亲自调校的参数都是最适合大众使用的(少数追求极致的用户除外),完全不需要自己再折腾这些;

第二是 Root 权限收紧倒逼了非 Root 功能的开发。收紧是多方参与的:厂商在收回 bootloader 权限、客户端在加强反 Root 检测。这就要求用户不得不探索免 Root 的平替方法。目前这一套流程也很成熟了(利用 ADB 权限的 Shizuku 、利用 Device Owner 权限的 Dhizuku 、利用 VPN 的流量过滤、利用运行库修补加载 Xposed 模块的 LSPatch 等),对部分浅度用户来说,Root 的意义确实是越来越小了。
@KlesaOff #12 根据楼上仁兄的介绍,我也查到了 Rust 仓库关于 reborrow 的讨论: https://github.com/rust-lang/reference/issues/788

总之这部分目前确实是没有比较详细的官方文档的,内部实现可能也不是特别完备,一般初学不用过深了解,简单理解上面说的「同一时间、同一块内存只能使用一个可变引用」的规则就可以判断代码合法性了。如果编译器不够聪明(例如借用数组切片),就用 unsafe 帮他体面。
如果是下载第三方只是为了安装包,我一般习惯直接在命令行里 ./gradlew assembleRelease 来编译。

Android Studio 、JDK 、Gradle 、AGP 、Kotlin Compiler 这五者版本是相互耦合的,能少一个因素是一个。
问题无关,好奇什么样的项目需要自己从头实现新语言和编译器才好做
77 天前
回复了 baobao1270 创建的主题 分享创造 Pure Shell HTTP Server
cool ,这才是真正的 shell

另有一些语法风格上的建议:

1. function 关键字是兼容一些远古 shell 给出的。既然指定了 bash ,用 server() {} 就好了;

2. 函数内的变量最好用 local 声明,否则作用域会泄漏到函数外;

3. 可以用 shellcheck 过一遍,可能有其他忽略的点
1 ... 4  5  6  7  8  9  10  11  12  13 ... 22  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   993 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 20:27 · PVG 04:27 · LAX 13:27 · JFK 16:27
Developed with CodeLauncher
♥ Do have faith in what you're doing.