【问题标题】:How does Java handle multithreading?Java如何处理多线程?
【发布时间】:2010-03-30 01:30:50
【问题描述】:

Java 如何决定分配线程或进程的内核?有什么办法可以控制吗?防止两个大线程在同一个内核上执行?

基本上,我要问的是有关多线程在 Java 中如何工作或如何在 Java 中控制它的更多信息。

【问题讨论】:

    标签: java multithreading


    【解决方案1】:

    您不能为特定线程设置处理器关联。但是,如果您将程序分成两个进程,您应该能够将这些进程分配给操作系统级别的特定处理器。

    http://www.cyberciti.biz/tips/setting-processor-affinity-certain-task-or-process.html

    【讨论】:

    • @Tim Bender: +1... 并提示(无能的)cmets 解释说设置处理器亲和性在 3..2..1 中没有用 :)
    【解决方案2】:

    这是Multithreading in Java的教程。

    至于线程调度 - 操作系统应该适当地处理线程调度。您通常无需担心这一点。

    Java Thread class 目前不提供手动设置线程亲和性的方法,尽管这在过去已经提出。

    【讨论】:

      【解决方案3】:

      Java 如何决定使用哪个内核 分配线程还是进程?

      它没有。操作系统可以。

      有什么办法可以控制吗?到 防止两个大线程 在同一个内核上执行?

      不在 Java 中。

      基本上我要求的是 有关如何的更多信息 多线程在 Java 中工作,或者如何 在 Java 中控制它。

      没有。这一切都由操作系统完成。

      基本上你问错了问题。

      【讨论】:

      • 这个问题对于绿色线程来说更有意义。
      【解决方案4】:

      这实际上取决于 JVM 上的实现,但一般而言,Java 实现依赖于底层操作系统的线程功能。据我所知,没有公共和标准的扩展来设置亲和力。但是,可能有提供钩子的实验性 JVM。

      此外,干扰 JVM 抽象以直接干扰底层平台在一定程度上(和恕我直言)违背了 Java 的精神。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-12
        • 2017-02-07
        • 2013-08-16
        • 1970-01-01
        • 2013-04-29
        • 1970-01-01
        • 1970-01-01
        • 2023-01-02
        相关资源
        最近更新 更多