一般程序执行
Java程序运行不同于一般程序,一般程序需要经过编译器翻译成0和1的二进制格式才能由计算机执行。具体执行过程如下:
例如执行一个HelloWorld.c源代码需要经过:
-
编译为二进制可执行文件,以HelloWorld程序/可执行文件存放在磁盘/文件系统中
gcc HelloWorld.c -o HelloWorld
-
系统创建进程,根据采用的内存管理,HelloWorld程序应该调入内存并以进程实例运行(等待调入仍在磁盘中的进程进入输入队列)
./HelloWorld
内存中的进程结构如下,
多线程一般程序执行
每个线程是CPU使用的一个基本单元,包括线程ID,程序计数器,寄存器和stack。而与同一进程的其他线程共享代码段,数据段和其他操作系统资源。
多线程对于最初的单核系统而言,线程随着时间的推移交错进行(并发执行)。但是对于多核系统,并发表示线程能够并行运行,因为系统可以为每一个核分配一个单独线程。