当前位置: 首页 > 面试题库 >

请问单核机器上写多线程程序,是否需要考虑加锁,为什么?

裴畅
2023-03-14
本文向大家介绍请问单核机器上写多线程程序,是否需要考虑加锁,为什么?相关面试题,主要包含被问及请问单核机器上写多线程程序,是否需要考虑加锁,为什么?时的应答技巧和注意事项,需要的朋友参考一下

参考回答:

在单核机器上写多线程程序,仍然需要线程锁。因为线程锁通常用来实现线程的同步和通信。在单核机器上的多线程程序,仍然存在线程同步的问题。因为在抢占式操作系统中,通常为每个线程分配一个时间片,当某个线程时间片耗尽时,操作系统会将其挂起,然后运行另一个线程。如果这两个线程共享某些数据,不使用线程锁的前提下,可能会导致共享数据修改引起冲突。

 类似资料:
  • 问题内容: 我只是想知道我们是否真的需要算法是多线程的,如果它必须利用多核处理器,或者jvm是否要利用多核处理器,即使我们的算法是顺序的? 问题答案: 我不相信任何当前的生产JVM实现都可以执行自动多线程。他们可能会使用其他核心进行垃圾回收和其他内部管理,但是如果您的代码是顺序表达的,则很难自动并行化它并仍然保留精确的语义。 有 可能 是一些实验/研究的JVM其中设法并行的代码的JIT可以当场为尴

  • 本文向大家介绍请问,redis为什么是单线程?相关面试题,主要包含被问及请问,redis为什么是单线程?时的应答技巧和注意事项,需要的朋友参考一下 考察点: 因为CPU不是Redis的瓶颈。Redis的瓶颈最有可能是机器内存或者网络带宽。既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。缺点:服务器其他核闲置。

  • 本文向大家介绍请为什么说js是单线程,而不是多线程呢?相关面试题,主要包含被问及请为什么说js是单线程,而不是多线程呢?时的应答技巧和注意事项,需要的朋友参考一下 JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。 JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript

  • 问题内容: 说我有一个全局对象: 有一个线程定期运行以从远程获取新编号并更新(仅写入): 并且有一个或多个线程随机使用此全局变量(仅读取): 您可以看到我不使用任何锁或对其进行保护,对吗?是否有可能引起问题的潜在问题? 更新: 就我而言,读取线程必须实时获取最新的值并不是很重要。我的意思是,如果有任何问题(由于缺少锁定/同步而导致)使一个读取线程错过了该值,那就没关系了,因为它将有机会尽快运行相同

  • 问题内容: 如果您依赖具有全局解释器锁(即CPython)的Python实现并编写多线程代码,那么您真的需要锁吗? 如果GIL不允许并行执行多个指令,那么共享数据是否有必要保护吗? 抱歉,这是一个愚蠢的问题,但这是我一直想知道的关于多处理器/核心计算机上的Python的东西。 同样的情况也适用于具有GIL的任何其他语言实现。 问题答案: 如果您在线程之间共享状态,则仍然需要锁。GIL仅在内部保护解

  • 问题内容: 该单页应用(SPA)已经到了我们。随之而来的还有很多新功能,例如路由,客户端页面生命周期,MVC模式,MVVM模式,MV *模式等等。还有一些Javascript模式,例如AMD模式,Singleton,Facade,.. 还开发了许多SPA框架和库。我们可以在互联网上找到它的一些内容。它们是AngularJs,Reactjs,BackboneJs,DurandalJs 等等,以及许多