腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
在实践中
实现
Future
时
如何
使用
Context
和
Waker
、
、
我发现很难理解为什么以及何时需要显式地对传递给对象上的poll方法的
Context
和
/或其
Waker
执行某些操作,我正在为该对象
实现
Future
。我一直在阅读Tokio
和
Async Book的文档,但我觉得这些示例/方法太抽象了,无法应用于实际问题。use std::{
future
::
Future
, pin::Pin, task::{
Context
, Poll}, time::Duration}; use futu
浏览 25
提问于2021-02-11
得票数 1
回答已采纳
1
回答
如何
在Rust中
使用
Windows IOCP
实现
异步函数?
、
在C#中,我们可以通过
实现
INotifyCompletion接口来构建一个可访问的对象。OnCompleted(Action continuation) throw new NotImplementedException();} 但在Rust中,我不知道
如何
构建异步函数以支持现有异步库中目前不支持的操作你能给我一个用铁锈
实现
异步函数的例子吗?
浏览 0
提问于2020-04-05
得票数 2
回答已采纳
1
回答
如何
在不
使用
任何外部依赖项的情况下执行异步/等待函数?
、
、
这种情况应该在没有任何外部依赖的情况下发生,比如tokio、普通锈蚀
和
std。如果我们不
使用
unsafe就能完成它的话,就会得到额外的分数。 我模糊的理解是,首先,我需要放下Pin任务。let pinned_task = Pin::new(&mut task);the trait `std::marker::Unpin` is not implemented for `s
浏览 1
提问于2019-05-22
得票数 6
回答已采纳
2
回答
是否有必要在每次叫未来::投票
时
都注册一个新的
waker
?
、
、
、
我正在制作我自己的通道
实现
,但是std::task::
Context
并没有清楚地说明
waker
是
如何
生成的。() {
waker
.cancel(); }} type Output = Result<(), SendError在我的代码中,由于不同的未来组合,会有很多超时
和
循环选择。 我做了一个小实验,可以
使用
,但我不确定它
浏览 1
提问于2020-06-03
得票数 1
回答已采纳
1
回答
如何
制作期货柜台?
、
我愿意impl一个简单的
Future
计数器,但它肯定出了问题。如果不
使用
Context
,下面的程序就会永远阻塞;use std::task::{Poll,
Context
}; Pin::get_unchecked_mut(self).counter += 1;// cx.
w
浏览 1
提问于2022-06-15
得票数 0
回答已采纳
1
回答
防止并发执行
、
、
、
我认为
实现
一个在其他线程/连接完成之前阻塞执行的
Future
可以解决这个问题。就我的问题而言,我将Futures存储在Mutex<HashMap<i64, LockFut>>中,但是当我锁定互斥锁以获取并等待LockFut
时
,它显然会抱怨MutexGuard没有被发送。我不知道
如何
解决这个问题,或者我的方式很糟糕。: Option<
Waker
>,} state: Arc<Mu
浏览 13
提问于2020-07-06
得票数 2
回答已采纳
1
回答
如何
编写异步函数,在资源准备就绪或几秒钟内重试
时
轮询资源并返回?
、
我想编写一个异步函数,它反复从web轮询一个资源,并在它准备好
时
返回。我正在
使用
实现
它
future
::poll_fn(|ctx| match poll_web_resource() { Ready => Poll::Ready对于我的用例,理想的情况是,当资源还没有准备好
时
,每隔几秒钟请求一次。这是可行的,但它
使用
额外的线程来跟踪超时。我怎样才能更具体地
实现
同样的目标呢?
浏览 0
提问于2019-08-12
得票数 2
回答已采纳
1
回答
有没有办法关闭`tokio::runtime::current_thread::Runtime`?
、
我
使用
的是,我希望能够运行一个未来,并在同一个线程中停止反应堆。页面上的示例没有显示
如何
停止运行时。有什么办法我能做到吗?
浏览 2
提问于2018-12-12
得票数 1
1
回答
异步Rust中每个未来的不同上下文或
Waker
、
、
、
我正在尝试理解在异步Rust
Future
中轮询是
如何
工作的。
使用
下面的代码,我尝试运行两个期货Fut0
和
Fut1,这样它们就像下面的Fut0 -> Fut1 -> Fut0 -> Fut0一样交错。extern crate futures; // 0.3.1 use std::pin::Pin; step: usize,
浏览 3
提问于2019-11-22
得票数 1
2
回答
使用
另一个任务
waker
轮询未来
、
我正在尝试
实现
一个接收器包装器,它将刷新委托给另一个任务。基本上:我不知道
如何
为服务任务构建上述
Waker</em
浏览 16
提问于2022-10-03
得票数 0
回答已采纳
1
回答
如何
在闭包之间与wasm-bindgen具体地共享数据?
、
下面是我在MWE上的尝试,尽管它利用未来人为地夸大了错误发生的可能性:use std::
future
::
Future
;use std::rc::Rc;use wasm_bindgen::prelude::*; fn poll(self: Pin<&mut Self>, cx: &
浏览 1
提问于2021-04-03
得票数 0
回答已采纳
1
回答
铁锈“流”是
如何
理解何时调用`poll_next`的?
、
、
Stream的说: 流
如何
理解何时再次调用poll_next?
浏览 4
提问于2020-02-27
得票数 1
1
回答
如果poll的缓冲区没有足够的缓冲区大小,该怎么办?
铁锈的未来
使用
poll_read ()来轮询可用数据: &mut self, buf: &mut [u8]fn pol
浏览 3
提问于2021-03-06
得票数 1
回答已采纳
1
回答
为什么铁锈异步迫使
实现
者
使用
“`
Waker
`”的动态调度
、
、
、
我读到了异步/等待是
如何
在铁锈中的,我注意到RawWaker本质上是一个胖指针。我不太明白为什么
Waker
的
实现
本质上类似于struct
Waker
{data: *const (), vtable: *const WakerVTable},而不是
Waker
<T: Wakes>{raw_walker: &mut T},后者允许编译器在编译
时
知道wake()、wake_ref()、drop()
和
clone()的
实现
。
浏览 2
提问于2022-05-20
得票数 1
回答已采纳
2
回答
为什么未来的输出需要发送给未来本身?
、
、
、
[feature(
waker
_getters)]
future
::
Future
, pin::Pin, task::{
Context
, Poll,
Waker
}, /// Info aboutSend值跨越.aw
浏览 25
提问于2022-07-17
得票数 2
1
回答
如何
在Rust中编写两个异步函数
、
、
fn compose_
future
<A, B, C, G, F>(f: F, g: G) -> (impl Fn(A) -> impl
Future
<C>) F: Fn(A) ->impl
Future
<B>,{} 我得到了下面的错误function and inherent me
浏览 15
提问于2020-07-04
得票数 1
2
回答
锈蚀中的观察者模式
、
、
锈蚀中观察者模式的简单
实现
。可观察构造函数(::new)是用订阅函数调用的,每次观察者订阅
时
都会调用该函数。传递一个简单的next函数提供一个FullObserver,除了上述函数之外,还提供一个启动函数
浏览 0
提问于2021-07-17
得票数 1
3
回答
在AsyncRead中超时不超时
、
我正在尝试
实现
一个异步读取包装器,它将添加读取超时功能。目标是API是普通的AsyncRead。换句话说,我不想在代码中添加io.read(buf).timeout(t)。use async_std::{ io, task::{sleep,
Context
, Poll},use std::time::Duration; expired: Option<
浏览 5
提问于2022-02-08
得票数 2
回答已采纳
1
回答
闭包作为泛型返回` `impl (T)`
我一般地
实现
了callback_list_stream,但我似乎不能以专门的方式
使用
它。如果我按T复制/粘贴代码,代码就会正常工作。::introspect::{SinkInfo, SinkPortInfo, SourceInfo, SourcePortInfo},use std::
future
::
Future
;use std::sync::{Arc, Mutex}; use std::task::{
Context
, Poll,
Waker
浏览 23
提问于2020-08-19
得票数 0
回答已采纳
1
回答
Scala泛型宏
、
、
是否可以
使用
scala宏来执行以下操作: def cache[T](genValue: =>
Future
[T]):
Future
[T] = macro Cacheable.cacheImpl(genValue: c.Expr[
Future
[A]]): c.Expr[
Future
[A]] = { genValue.splice}} 它不会在Cacheable特征中的
浏览 0
提问于2013-12-24
得票数 0
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
深入了解 Rust 异步开发模式
2行代码,让接口性能提升10倍
ListenableFuture并发编程
【译】Async/Await(二)——Futures
Http 持久连接与 HttpClient 连接池
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券