在流程级别同时处理线程?

时间:2017-10-30 11:58:08

标签: java multithreading operating-system thread-safety multitasking

在多线程概念中,我们在程序中创建不同的线程。我的问题是,线程是进程的一部分并且并行执行或者在进程内部轮流执行并执行吗?

1 个答案:

答案 0 :(得分:2)

当你说“在进程内部”时,我不确定你的想法,但一般来说,线程的调度完全取决于操作系统,尽管大多数操作系统提供了一些请求线程和/或流程优先。在Java中,您可以使用Thread.setPriotity方法设置线程优先级,但Java运行时库不会公开我所知道的进程优先级(尽管您通常可以使用特定于平台的库)。

线程是否实际并行运行取决于它们是否恰好在任何时间点安排在不同的处理器上。否则,它们不会并行运行,但可以相互抢占。这意味着操作系统将在暂停和切换到另一个之前运行一段时间。

许多操作系统还提供了一种为线程分配处理器“亲和性”的方法,可以用来增加它在特定处理器上运行的可能性,但这也不会在标准Java运行时库中公开。