【摘要】:程序计数器是一个记录线程当前执行程序代码位置的寄存器,当线程在执行的过程中,程序计数器指向的是下一条要执行的指令。然后在这个JVM环境中,所有程序的运行都是以线程来运行。图9.2单线程原理图图9.3多线程原理图主线程是JVM自己启动的,在这里它不是从线程对象产生的。在这个线程中,它运行了main方法这个指令序列,所以main方法应声明成静态的。
JVM(Java虚拟机)的很多任务都依赖于线程调度,而且所有的类库都是为多线程设计的,Java利用多线程使得整个执行环境是异步的。在Java语言中每一个线程都有一个独立的程序计数器和方法调用栈。
程序计数器是一个记录线程当前执行程序代码位置的寄存器,当线程在执行的过程中,程序计数器指向的是下一条要执行的指令。
方法调用栈是用来描述线程在执行时一系列的方法调用过程。栈中的每一个元素称为一个栈帧。每一个栈帧对应一个方法调用,帧中保存了方法调用的参数、局部变量和程序执行过程中的临时数据。
JVM进程被启动,在同一个JVM进程中有且只有一个进程,就是它自己。然后在这个JVM环境中,所有程序的运行都是以线程来运行。JVM最先会产生一个主线程,由它来指定运行程序的入口点。在这个程序中主线程从main方法开始运行,当main方法结束后主线程运行完成,JVM进程也随之退出。
我们看到的是一个主线程在运行main方法,像这样只有一个线程执行程序逻辑的流程称之为单线程。这是JVM提供给我们的单线程环境,事实上,我们还可以在进程中创建新的线程并执行,这样,在一个进程中就存在多个程序执行的流程,这就是多线程的环境。
单线程和多线程的原理如图9.2和图9.3所示。(www.daowen.com)
图9.2 单线程原理图
图9.3 多线程原理图
主线程是JVM自己启动的,在这里它不是从线程对象产生的。在这个线程中,它运行了main方法这个指令序列,所以main方法应声明成静态的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关Java程序设计实用教程的文章