如何调用一个 function 而不用等待其返回

2021-09-24 17:54:36 +08:00
 jstony
比如现在有两个 function,一个 fun a,一个 fun b,在 fun a 中需要调用 fun b,但是对 b 的执行结果毫不关心,也不用等待 b 执行完,怎么实现比较合适?
3313 次点击
所在节点    Python
11 条回复
wd
2021-09-24 17:56:17 +08:00
async 或者线程
kealm
2021-09-24 18:02:52 +08:00
```js
async function b() {
return new Promise((resolve) => setTimeout(resolve, 10000))
}

function a() {
console.time('b')
b()
console.timeEnd('b')
}

async function aa() {
console.time('b')
await b()
console.timeEnd('b')
}
```
ila
2021-09-24 18:08:06 +08:00
celery
Abbeyok
2021-09-24 18:12:28 +08:00
threading.Thread
rootit
2021-09-24 18:18:19 +08:00
python 肯定首选 asyncio.create_task() 了,再次 threading 起线程
deplivesb
2021-09-24 19:11:18 +08:00
了解一下异步
demonzoo
2021-09-24 20:34:08 +08:00
就直接在 a 里面调用 b() 就好了啊。。。不要 await b()
IsaacYoung
2021-09-24 20:34:31 +08:00
thread
meiyoumingzi6
2021-09-24 21:24:45 +08:00
哈哈哈哈哈哈 我当时刚接触 python 的时候也思考过这个问题

0. 多线程, 把 b 丢进新的线程计算
1. 多进程, 同上
3. 协程 async
4. celcry 等异步框架
5. 换 golang, 无脑 go 就行了 [手动狗头
yianing
2021-09-25 02:15:23 +08:00
golang:go 就完了
dangyuluo
2021-09-25 02:35:01 +08:00
这种情况 Async 比多线程要好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/803979

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX