【问题标题】:Behavior of Multithreaded programs in different OS不同操作系统中多线程程序的行为
【发布时间】:2015-10-21 18:54:27
【问题描述】:

用 java 编写的多线程代码在不同操作系统中的行为有何不同。基本上我想知道不同操作系统中相同优先级的线程是如何处理的,以及是否有其他参数基于不同的操作系统处理线程。

【问题讨论】:

  • 基本上:这是您在使用 Java 时提出的错误类型的问题。线程优先级和诸如此类的不是参数,您甚至应该考虑...除非您在非常低的级别进行编程,否则Java无论如何都无法做到。
  • 仅仅说“在不同的操作系统中”是不够的。在同一操作系统和硬件上的不同 JVM 实现中,使用优先级进行胡闹的程序可能会有不同的行为。

标签: java multithreading oop


【解决方案1】:

默认情况下,Java 线程使用本机操作系统的线程,因此 Java 线程的行为与本机线程的行为方式相同。但是,在当今的大多数操作系统中,操作系统会为具有相同优先级的线程提供大致相等的时间片。

操作系统之间的主要区别在于,由于线程或内存架构的差异,您可能会发现某些操作系统中会出现一些线程错误,而在其他操作系统中则不会。硬件差异也会导致这种影响。

最好的办法是确保您的代码正确同步,没有死锁或竞争条件,以便它可以在任何操作系统中安全运行。

【讨论】:

    猜你喜欢
    • 2023-03-06
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 2010-10-02
    • 2011-05-24
    • 2020-02-20
    • 1970-01-01
    相关资源
    最近更新 更多