当前位置: 首页 > 知识库问答 >
问题:

'await task.delay(1000)'是否阻塞任何线程?

翟俊哲
2023-03-14

那么,我是否理解正确:await task.delay()不阻塞调用线程,而是阻塞等待的任务转移到的某个线程?

如果这句话是真的,那么你能给我一个方法,让任务等待一段时间而不阻塞任何线程在等待期间吗?

共有1个答案

周楷
2023-03-14

然而,它阻塞了一些线程,等待的任务被转移到哪里?

这取决于你所说的“街区”是什么意思。它不会导致任何线程进入Hibernate1秒,或者(更糟糕的是)旋转等待延迟完成。相反,它有效地调度计时器在1秒内触发,然后执行由于await而注册的延续。

在稍微简化的级别上,await只转换为:

    null
 类似资料:
  • ReplyingKafkaTemplate是否阻塞?有无反应性替代方案?

  • 如果队列已满,ArrayBlockingQueue将阻止生产者线程;如果队列为空,ArrayBlockingQueue将阻止消费者线程。 这种阻塞的概念是否与多线程的思想背道而驰?如果我有一个“主”线程,并假设我想将所有“日志记录”活动委托给另一个线程。因此,基本上在我的主线程内,我创建了一个Runnable来记录输出,并将其放在ArrayBlockingQueue上。这样做的全部目的是让“主”线

  • 本文向大家介绍Java countDownLatch如何实现多线程任务阻塞等待,包括了Java countDownLatch如何实现多线程任务阻塞等待的使用技巧和注意事项,需要的朋友参考一下 我这里需要通过多线程去处理数据,然后在所有数据都处理完成后再往下执行。这里就用到了CountDownLatch。把countdownlatch作为参数传入到每个线程类里,在线程中处理完数据后执行countdo

  • 问题内容: 我怀疑这是不允许的,因为我收到“解析错误:语法错误,意外的T_IF输入…”错误。但是我找不到实现目标的方法。这是我的代码: 它的作用是在select元素中显示国家列表,并将United States设置为默认值。我不难过… 问题答案: 您将要使用 的 一个三元运算符,用作简化的IF / Else语句:

  • 我编写了一个简单的类,我计划将其扩展为客户端套接字编程应用程序的一部分。类涉及一个BlockingQueue(我从这里复制了代码:相当于Java的BlockingQueue的C++)。当我创建了下面的包装类的一个实例后,我打算让它生成一个单独的线程,该线程只需执行BlockingQueue上阻塞的printer()函数,直到有一个或多个字符串可用,然后它只需将字符串打印到控制台窗口。在我的预期应用

  • 背景我使用log4j2(2.12.1)与同步根和异步记录器。Lmax环形缓冲区大小默认为256*1024。我在控制台的appender。我用JSON布局记录MapMessage。我的日志消息的平均大小约为100字节。 有了上面的细节,我注意到很少有线程被阻塞在 我的问题是。。 环形缓冲区是否很快就满了,这导致主线程背压(在我的例子中,servlet容器线程是http-nio-8080-exec-1