gpt4 book ai didi

Java 线程与 Pthread

转载 作者:IT老高 更新时间:2023-10-28 20:35:14 28 4
gpt4 key购买 nike

我在今天的采访中被问到这个问题。

"当我们用pthread_create()(POSIX Threads)创建线程时,线程自己启动。为什么我们需要显式调用start() Java。当我们创建它的实例时,Java 没有启动线程的原因是什么。”

我当时一头雾水,面试官时间紧迫,最终他无法向我解释原因。

最佳答案

在 Java 中,不立即启动线程会导致更好的 API。您可以在线程上设置属性(守护进程、优先级),而无需在构造函数中设置所有属性。

如果线程立即启动,则需要一个构造函数,

public Thread(Runnable target, String name, ThreadGroup threadGroup, int priority, boolean daemon, ContextClassLoader contextClassLoader, long stackSize)

允许在线程启动之前设置所有这些参数。线程启动后无法设置 daemon 属性。

我猜测 POSIX API 在调用 pthread_create() 时采用了一个包含所有线程属性的结构,因此立即启动线程是有意义的。

关于Java 线程与 Pthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5269535/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com