V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  abc612008  ›  全部回复第 1 页 / 共 6 页
回复总数  116
1  2  3  4  5  6  
7 小时 34 分钟前
回复了 pureGirl 创建的主题 程序员 Python 中线程和协程的区别是什么
多线程:
1. 同一时间可以有两个指令在被 CPU 执行。
2. 线程是系统/硬件级的概念。
3. 例子:咖啡店有两个(机器人)店员在同时做咖啡。(你也没法写软件多出一个店员)

协程
1. 同一时间只有一个指令在被执行,但是可以是完全不同地方的指令。
2. 协程是应用级的概念。
3. 一个店员在做两杯咖啡,在等加热的时候去“同时”做另一杯。(因此协程通常只有在 IO bound 的时候才比较有作用)

当然也可以既有多线程也有协程。

我觉得你的问题是,既然 GIL 导致没有办法同时真的执行两个 python 语句,那多线程不就和协程一样了。我的理解是 python 的多线程仍然是多个系统线程,而 GIL 只在 python 代码里会被 lock ,如果是在做 IO bound/syscalls 或者甚至 numpy,pandas 在做计算的时候都会 release GIL 。
> 严禁使用任何代码生成工具或者外部辅助手段解题,包括但不限于将题目描述、测试用例或解题代码输入到外部辅助工具中的行为

lc 竞赛用 LLM 生成代码是禁止的。
11 天前
回复了 aqtata 创建的主题 C++ 这种情况如何消除几百个 if/else
@ysc3839 #62 已经有点复杂到一般人看不懂了... 其实取决于场景,甚至可以直接丢 dll/so 里然后运行时加载库直接找对应的符号(
12 天前
回复了 aqtata 创建的主题 C++ 这种情况如何消除几百个 if/else
@bluearc #57 都用上 map 了那不如这样:

```
#include <iostream>
#include <functional>

constexpr int maxN = 100;

class Foo {
public:
static void invoke(int i) {
_mapping[i](i);
}

private:
static std::function<void(int)> _mapping[maxN];

template <int N>
struct FooHelper {
FooHelper() {
_mapping[N] = [](int n) {
std::cout << "Foo<" << N << "> (" << n << ")" << std::endl;
};
}
};
template <int N>
struct Initer : Initer<N-1> {
FooHelper<N> _foo;
};
static Initer<maxN> _initer;
};
template<>
struct Foo::Initer<0> {};
std::function<void(int)> Foo::_mapping[maxN];
Foo::Initer<maxN> Foo::_initer;

int main(){
int n;
std::cin>>n;
Foo::invoke(n);
}
```

虽然感觉也挺丑的
12 天前
回复了 aqtata 创建的主题 C++ 这种情况如何消除几百个 if/else
@ysc3839 #56 你这个调用一次 func 的时间是 O(n)的吗..难道要从 0 开始试
```
❯ ./a.out 7
n = 7
test<2>(7)
test<3>(7)
test<5>(7)
test<7>(7)
func<7>()
```
13 天前
回复了 aqtata 创建的主题 C++ 这种情况如何消除几百个 if/else
@bluearc 这是 gpt 写的吗?模板参数丢个运行时变量进去怎么可能编译的过。
Backblaze $6/tb/mo 大概每 gb 每月 4 分钱?
pixel 哪来的双卡
@dhuzbb 同前 pixel 7 pro 用户,已换海外版一加 12 。感觉良好,特别是充电和电池吊打 pixel 。
220 天前
回复了 itakeman 创建的主题 Windows win 下使用 Linux 命令的方法有哪些?
为什么不想用 wsl
251 天前
回复了 fu82581983 创建的主题 Kotlin Kotlin 2.0.0 正式版发布了
Kotlin 是我用过的语法上最优雅的语言,我觉得在这方面吊打 java 是没啥问题的。
@cyio 是的,一般来说在一个局域网里都可以直接 P2P 。
因为我们追求的是低延时高分辨率,所以比较需要一个编译式的语言。选择上基本上就是 C++ 或者 Rust 。Rust 比起 C++ 来说更“现代”一些,对 coroutine 支持也更好一些,而且也比较安全。我们实际上都是第一次用 Rust 做项目。不知道你说的“其他远程桌面技术方案”是具体指的哪些。
bazel
@JackyTsang k3d 完全可以只跑在一台机子上,和 compose 效果一样
> 当然我知道 K3S/K3D 或许轻量,学习成本跟使用成本摆在那里。

所以除了“我不会,不想学”以外还有啥不用 k3s/k3d 的原因吗
2023-03-17 03:12:09 +08:00
回复了 unt 创建的主题 程序员 oh my zsh SSH 连接到主机后,所有效果就都没了
问题是你为什么天天 ssh 进生产服务器(
你要不先把每个项目的 "Simple" 给去掉
1  2  3  4  5  6  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   696 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 21:16 · PVG 05:16 · LAX 13:16 · JFK 16:16
Developed with CodeLauncher
♥ Do have faith in what you're doing.