Cha*_*ani 24 java multithreading posix
我今天在接受采访时被问到这个问题.
"当我们用pthread_create()(POSIX Threads)创建一个线程时,线程就会自行启动.为什么我们需要start()在Java中显式调用.当我们创建一个实例时,Java没有启动该线程的原因是什么."
我是空白,面试官时间不长,最终他无法向我解释原因.
sbr*_*ges 21
在Java中,不立即启动线程会导致更好的API.您可以在线程(守护程序,优先级)上设置属性,而无需在构造函数中设置所有属性.
如果线程立即启动,则需要构造函数,
public Thread(Runnable target, String name, ThreadGroup threadGroup, int priority, boolean daemon, ContextClassLoader contextClassLoader, long stackSize)
Run Code Online (Sandbox Code Playgroud)
允许在线程启动之前设置所有这些参数.线程启动后无法设置守护程序属性.
我猜测POSIX API在调用中采用了包含所有线程属性的结构pthread_create(),因此立即启动线程是有意义的.
原因很多。但我会给你一些:
pthread_create来实际执行代码是没有意义的我希望你能明白。
| 归档时间: |
|
| 查看次数: |
11631 次 |
| 最近记录: |