use crossbeam_channel::{Receiver, bounded};use tokio::time::{Duration, delay_for};#[tokio::main]async fn main() { let (s, r) = bounded(10); for i in 0..100 { s.send(i).unwrap(); let rx = r.clone(); tokio::task::spawn(async move { handle(i, rx).await; }); } delay_for(Duration::from_secs(10)).await;}async fn handle(i: i32, rx: Receiver<i32>) { let _d = defer::defer(|| { println!("{} been defer", i); if let Err(err) = rx.recv() { println!("err : {:?}", err); } }); delay_for(Duration::from_secs(1)).await; println!("{} been excute", i);} |
使用 channel 做数量控制, defer 来保证 所有 消息被释放

新测试2011
视口照明和阴影『原创』
手绘原画动漫资源 Ⅰ 2012.10.17
手绘原画动漫资源 Ⅱ 2012.10.17
手绘原画动漫资源 Ⅲ 2012.10.17
手绘原画动漫资源 Ⅳ 2012.10.17
手绘游戏原画Ⅰ
手绘游戏原画Ⅱ
手绘游戏原画Ⅲ
手绘游戏原画Ⅳ
手绘游戏原画Ⅴ
德国素描精选
手绘的光照分析
《最后的晚餐》卡通原画 高清版