我需要帮助来理解java中的线程。
线程是程序中的执行线程。Java虚拟机允许应用程序并发运行多个执行线程。
当我们说Java的目标是“线程”时,这是什么意思?
发布于 2011-11-20 09:36:26
线程是一种在语言中实现并发的流行方法。爪哇有他们。这就是它的意思。
发布于 2011-11-20 09:32:11
这意味着可以并且应该同时执行各种操作。这可以通过使用线程来实现。您可以使用“低级”线程API (线程,Runnable),也可以使用更高级别的API (定时器、执行器)。
我希望这足以开始搜索和学习。我建议您从低级别的线程API开始,了解如何处理线程和同步。然后继续学习Java1.5中引入的并发包的工具。不要从更高级别的API开始。当你向执行者提交任务时,你需要更低的水平来理解场景背后发生的事情。
发布于 2011-11-20 09:49:08
,当我们说Java的目标是‘线程’时,我们的意思是什么?
实际上,我们并没有这么说,因为调用运行时环境“线程”意味着一些完全不同的东西;请参见http://en.wikipedia.org/wiki/Threaded_code。(请注意,该页面要注意区分“线程”和“多线程”!)
实际上,我们将Java描述为一种支持“多线程”编程的语言。你问题中的引语是对这意味着什么的简明描述。下面是一个更长的描述。
程序通常按顺序执行语句。例如:
int i = 1;
i = i + j;
if (i < 10) {
...
}在上述情况下,语句依次执行。
控制语句执行的东西称为“控制线程”或(更常见的)线程。您可以将其看作是一个自动机,它一个接一个地执行语句,并且一次只能执行一个语句。它记录局部变量的状态和过程调用。(它通常使用堆栈和一组私有寄存器来完成此操作.但这是一个实现细节。)
在多线程程序中,可能有许多这样的自动程序,每个自动程序都执行不同的语句序列(使用自己的堆栈和寄存器)。每个线程都可以与其他线程进行通信(通过观察共享对象等),并且可以通过各种was和各种原因与它们同步。
根据硬件(和操作系统)的不同,线程可以全部运行在同一个处理器上,也可以(在不同的时间)运行在不同的处理器上。这通常是两者的结合,通常由操作系统来决定哪些线程可以运行。(这由线程调度程序处理。)
从Java的角度来看,多线程编程是使用Thread类、synchronized方法和块以及Object级别的wait和notify方法在低级实现的。高级API为解决常见问题提供了标准的构建块。
https://stackoverflow.com/questions/8200598
复制相似问题