什么是java主线程
java应用程序中会有一个main函数,是作为某个类的方法出现的。当程序启动时,该函数就会第一个自动得到执行,并成为程序的主线程。就是说,main函数是一个应用的入口,也代表了这个应用主线程。下面是小编为大家搜索整理的java主线程是什么,希望能给大家带来帮助!更多精彩内容请及时关注我们考试网!
需要弄清的问题
如同程序和进程的区别,要掌握多线程编程,第一要弄清的问题是:线程对象和线程的区别。
线程对象是可以产生线程的对象。比如在java平台中Thread对象,Runnable对象。线程,是指正在执行的一个指点令序列。在java平台上是指从一个线程对象的start()开始,运行run方法体中的那一段相对独立的过程。
鉴于作者的水平,无法用更确切的词汇来描述它们的定义。但这两个有本质区别的'概念请初学者细细体会,随着介绍的深入和例程分析的增加,就会慢慢明白它们所代表的真实含义。
天下难事必始于易,天下大事必始于细。
让我们先从最简单的"单线程"来入手:
(1)带引号说明只是相对而言的单线程,
(2)基于java。
class BeginClass{
public static void main(String[] args){
for(int i=0;i<100;i++)
tln("Hello,World!");
}
}
如果我们成功编译了该java文件,然后在命令行上敲入:
java BeginClass
现在发生了什么呢?每一个java程序员,从他开始学习java的第一分钟里都会接触到这个问题,但是,你知道它到底发生发什么?
JVM进程被启动,在同一个JVM进程中,有且只有一个进程,就是它自己。然后在这个JVM环境中,所有程序的运行都是以线程来运行。JVM最先会产生一个主线程,由它来运行指定程序的入口点。在这个程序中,就是主线程从Java main方法开始运行。当main方法结束后,主线程运行完成。JVM进程也随之退出。
我们看到的是一个主线程在运行main方法,这样的只有一个线程执行程序逻辑的流程我们称之为单线程。这是JVM提供给我们的单线程环境,事实上,JVM底层还至少有垃圾回收这样的后台线程以及其它非java线程,但这些线程对我们而言不可访问,我们只认为它是单线程的。
主线程是JVM自己启动的,在这里它不是从线程对象产生的。在这个线程中,它运行了main方法这个指令序列。理解它,但它没有更多可以研究的内容。
接触多线程
class MyThread extends Thread{
public void run(){
tln("Thread say:Hello,World!");
}
}
public class MoreThreads{
public static void main(String[] args){
new MyThread();
new MyThread()t();
tln("Main say:Hello,World");
}
}
执行这个程序,main方法第一行产生了一个线程对象,但并没有线程启动。
Java main方法第二行产生了一个线程对象,并启动了一个线程。
Java main方法第三行,产生并启动一个线程后,主线程自己也继续执行其它语句。
我们先不研究Thread对象的具体内容,稍微来回想一下上面的两个概念,线程对象和线程。在Java main方法中,线程对象是JVM产生的一个普通的Object子类。而线程是CPU分配给这个对象的一个运行过程。我们说的这个线程在干什么,不是说一个线程对象在干什么,而是这个运行过程在干什么。如果一时想不明白,不要急,但你要记得它们不是一回事就行了。
-
讲述java中enum的用法
本文实例讲述了java中enum的用法。分享给大家供大家参考。具体分析如下:1.基本用法复制代码代码如下:enumDay{SUNDAY,MONDAY,TUESDAY,WENDSDAY,THURSDAY,FRIDAY,SATURDAY;}枚举是常量,所以应该用大写。2.枚举是对象枚举隐含地继承了,所以它具有的.属性和方法。遍...
-
java的基础语法教学
java的基础语法教学前言学习完了第一个java程序,之后就来系统的学习java。先从基础语法开始,这个语法你也可以理解为英语或是汉语里面的语法,只不过大家各有各的特点和区别。学习编程其实也是一个编程语言的学习过程。我们在学习英语的.时候都说,要想学习好英语一...
-
java读取解析xml文件实例
如何在Java中读取解析文件呢?下面小编为大家整理了java读取解析xml文件实例,希望能帮到大家!读取本地的xml文件,通过DOM进行解析,DOM解析的特点就是把整个xml文件装载入内存中,形成一颗DOM树形结构,树结构是方便遍历和和操纵。DOM解析的特性就是读取xml文件转换为dom...
-
全国计算机等级《二级JAVA》命题预测试卷
以下是本站小编带来的全国计算机等级《二级JAVA》命题预测试卷,欢迎学习!更多内容请关注应届毕业生考试网!1、软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程B.软件从需求分析、设计、实现到测试完成的过程,C.软件的开发过程D.软件...