springboot是多线程的吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot是多线程的吗相关的知识,希望对你有一定的参考价值。

只能说springboot支持多线程,其实在spring的所有项目中很少见过多线程处理。因为我们在使用spring开发web项目的时候,action(controller),service,dao类的作用域都是单实例的。 参考技术A 支持多线程,在spring的localthread 体制下保证线程安全

OpenGL是多线程的吗? [复制]

【中文标题】OpenGL是多线程的吗? [复制]【英文标题】:Is OpenGL multithreaded? [duplicate] 【发布时间】:2017-09-13 15:52:15 【问题描述】:

有些库使用多个线程在底层工作。还有一些线程安全的库——对象支持在多个线程中运行。

OpenGL 怎么样?它是多线程的吗?它是线程安全的吗?

【问题讨论】:

快速谷歌搜索表明在 Mac OS X 上它是is。 This 还说它在 windows 中是多线程的,但用户必须手动“锁定”和“解锁”。 @meowgoesthedog 此链接是否说该库在 OS X 上使用多个线程?或者如果你想在多线程应用程序中使用它,它是否说明了如何处理这种情况? 它表示如果您使用多个上下文,驱动程序将忙于同步它们(而不是做有用的工作);这表明不需要在用户端进行显式同步 【参考方案1】:

如果取决于您所说的“多线程”是什么意思。

如果您正在考虑诸如(共享内存、使用锁等)之类的 C++ 功能,那么不,OpenGL 不能那样工作。但这并不意味着您不能使用线程。可以,但要特别小心。

要注意的主要是上下文。你可以有几个上下文。您可以将任何线程的任何上下文设置为当前,但一个线程只能设置一个上下文,而不是同一线程的两个上下文。

使用共享上下文可以让您在多线程方面获得一些优势。他们共享一些资源,如纹理和 VBO。例如,您将 ctx1 设置为线程的当前线程,并在该线程中使用 gl-commands 将纹理更新到 GPU。更新完成后,该纹理可用于在其他线程中设置为当前的共享上下文 ctx2。 OGL wiki 讲述了这一点 here 和 here。

话虽如此,问题是“我为什么需要多线程?”常见的答案是“让事情发生得更快”。关键是 GPU 将逐步绘制(当然,使用其所有并行性)但不会同时处理两个绘制命令。此外,将上下文设置为当前会有轻微的性能损失。

您可能正在寻找的是在渲染时将数据发送到 GPU。您可以使用我之前写的共享上下文。但是还有其他技术,例如 streaming,您可以在 OpenGL Insights book 第 28 章“异步缓冲区传输”中阅读更多内容。

【讨论】:

以上是关于springboot是多线程的吗的主要内容,如果未能解决你的问题,请参考以下文章

debezium sqlServer 连接器任务是多线程的吗?

asyncio.run_in_executor 是多线程的吗?

Disruptor - 消费者是多线程的吗?

Spring Boot MVC 控制器是多线程的吗?

js是多线程的吗,为啥可以同时执行多个语句

助力SpringBoot自动配置的条件注解ConditionalOnXXX分析--SpringBoo