duangsuse::Echo
718 subscribers
4.26K photos
130 videos
583 files
6.48K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
西方的法制_字幕.txt
2.8 KB
🌚我居然把一个半透明质量这么差的字幕提取出来了…… 那些代码改得真不容易
Forwarded from 依云
asyncio 下,一大堆任务怎么处理比较好呢?一个任务队列一个结果队列、若干个 worker?
Forwarded from 依云
我之前是这么干的:

async def main(proto):
q = asyncio.Queue()
ret_q = asyncio.Queue()

futures = [worker(q, ret_q) for _ in range(40)]
producer_fu = asyncio.ensure_future(producer(q, proto))
printer_fu = asyncio.ensure_future(printer(ret_q))

await asyncio.wait(futures)
printer_fu.cancel()
await producer_fu
await printer_fu
Forwarded from 依云
一个 coroutine 往 q 里放任务,一个 coroutine 从 ret_q 里取任务,再加上一堆 worker
Forwarded from 任桑 今天开始做魔王
并发量的话上个变量计数就好阿.....
Forwarded from 任桑 今天开始做魔王
b协程判断在执行的任务数达到上限就不取任务
Forwarded from Hung-I Wang
这个是手写 spinlock。
Forwarded from 任桑 今天开始做魔王
进程池的话,共享变量问题会比较多
Forwarded from 雪梨
直接异步 map 传就好了
Forwarded from 任桑 今天开始做魔王
别吧,上进程池还是让本地无状态吧
Forwarded from Hung-I Wang
如果你不加任何 synchronization primitives ,只有一个 while loop + 变量判断,在 asyncio 下没有显示的 yield point,会直接卡死,其它任务不会有执行机会。
Forwarded from 雪梨
不然他还是序列化+进程间通讯
Forwarded from Hung-I Wang
不用 Semaphore 这样的 synchronization primitives 没法写。
Forwarded from Hung-I Wang
那什么时候 wake 呢?
依云
我之前是这么干的: async def main(proto): q = asyncio.Queue() ret_q = asyncio.Queue() futures = [worker(q, ret_q) for _ in range(40)] producer_fu = asyncio.ensure_future(producer(q, proto)) printer_fu = asyncio.ensure_future(printer(ret_q)) await as…
import asyncio
from asyncio import ensure_future

async def main(proto, n_parallelism = 40):
q_arg = asyncio.Queue()
q_res = asyncio.Queue()
futures = [worker(q_arg, q_res) for _ in range(n_parallelism)]
producer = ensure_future(producer(q_arg, proto))
consumer = ensure_future(consumer(q_res))
await asyncio.wait(futures)
consumer.cancel() #🤔
await producer
await consumer


(刚才还在想 q_argq_res 哪来的联系,发现自己记漏了 worker(q_arg, q_res)
Forwarded from 天天向上 (Basic I/O Interface)
The latest version of CMake (3.17.1) was released.