SQL吧 网站源码下载 企业网站源码下载 免费网站源码下载

当前位置: 主页 > 教程 > 程序 > java >

Java main方法如何弄清进程问题

时间:2013-03-09 20:16来源:网络整理 作者:SQL吧 点击:
Java main方法如何弄清进程问题
企业站建365全包!先制作!后付款!600多套模版任你选择!晴网www.138.la专注企业站建仿站、域名、空间、云主机、服务器, 咨询电话:020-29031983 qq:2769485357

  随着计算机技术的生长,编程模型也越来越复杂多样化。

  但多线程编程模型是目前计算机系统架构的最终模型。随着CPU主频的不断攀升,X86架构的硬件已经成为瓶,在这种架构的CPU主频最高为4G。事实上目前3.6G主频的CPU已经接近了顶峰。

  如果不能从根本上更新当前CPU的架构(在很长一段时间内还不太可能),那么继续提高CPU性能的方法就是超线程CPU模式。那么,作业系统、应用法式要发挥CPU的最大性能,就是要改变到以多线程编程模型为主的并行处置惩罚系统和并发式应用法式。

  所以,把握多线程编程模型,不仅是目前提高应用性能的手段,更是下一代编程模型的核心思想。多线程编程的目的,就是"最大限度地利用CPU资源",当某一线程的处置惩罚不需要占用CPU而只和I/O,OEMBIOS等资源打交道时,让需要占用CPU资源的其它线程有机会获得CPU资源。从根本上说,这就是多线程编程的最终目的。

  第一需要弄清的问题

  如同法式和进程的区别,要把握多线程编程,第一要弄清的问题是:线程东西和线程的区别。

  线程东西是可以产生线程的东西。好比在java平台中Thread东西,Runnable东西。线程,是指正在执行的一个指点令序列。在java平台上是指从一个线程东西的start()开始,运行run方法体中的那一段相对独立的过程。

  鉴于作者的水平,无法用更确切的词汇来描述它们的定义。但这两个有本质区别的概念请初学者细细体会,随着介绍的深入和例程分析的增加,就会慢慢明白它们所代表的真实含义。

  全国难事必始于易,全国大事必始于细。

  让我们先从最简单的"单线程"来入手:(1)带引号说明只是相对而言的单线程,(2)基于java。

  1. class BeginClass{

  2. public static void main(String[] args){

  3. for(int i=0;i<100;i++)

  4. System.out.println("Hello,World!");

  5. }

  6. }

  如果我们成功编译了该java文件,然后在命令行上敲入:

  7. java BeginClass

  现在发生了什么呢?每一个java法式员,从他开始学习java的第一分钟里都会接触到这个问题,但是,你知道它到底发生发什么?

  JVM进程被启动,在同一个JVM进程中,有且只有一个进程,就是它本身。然后在这个JVM环境中,所有法式的运行都是以线程来运行。JVM最先会产生一个主线程,由它来运行指定法式的入口点。在这个法式中,就是主线程从Java main方法开始运行。当main方法结束后,主线程运行完成。JVM进程也随之退出。

  我们看到的是一个主线程在运行main方法,这样的只有一个线程执行法式逻辑的流程我们称

  之为单线程。这是JVM提供给我们的单线程环境,事实上,JVM底层还至少有垃圾回收这样的后台线程以及其它非java线程,但这些线程对我们而言不可访问,我们只认为它是单线程的。

  主线程是JVM本身启动的,在这里它不是从线程东西产生的。在这个线程中,它运行了main方法这个指令序列。理解它,但它没有更多可以研究的内容。

  接触多线程

  8. class MyThread extends Thread{

  9. public void run(){

  10. System.out.println("Thread say:Hello,World!");

  11. }

  12. }

  13. public class MoreThreads{

  14. public static void main(String[] args){

  15. new MyThread();

  16. new MyThread().start();

  17. System.out.println("Main say:Hello,World");

  18. }

  19. }

  执行这个法式,main方法第一行产生了一个线程东西,但并没有线程启动。

  Java main方法第二行产生了一个线程东西,并启动了一个线程。

  Java main方法第三行,产生并启动一个线程后,主线程本身也继续执行其它语句。

  我们先不研究Thread东西的具体内容,稍微来回想一下上面的两个概念,线程东西和线程。在Java main方法中,线程东西是JVM产生的一个普通的Object子类。而线程是CPU分配给这个东西的一个运行过程。我们说的这个线程在干什么,不是说一个线程东西在干什么,而是这个运行过程在干什么。如果一时想不明白,不要急,但你要记得它们不是一回事就行了。

(责任编辑:编辑部)
顶一下
(0)
0%
踩一下
(0)
0%
0
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
栏目列表
推荐内容