知识大全 关于Java主线程

Posted

篇首语:入于污泥而不染不受资产阶级糖衣炮弹的侵蚀,是最难能可贵的革命品质。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 关于Java主线程相关的知识,希望对你有一定的参考价值。

关于Java主线程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  java应用程序中会有一个main函数 是作为某个类的方法出现的 当程序启动时 该函数就会第一个自动得到执行 并成为程序的主线程 就是说 main函数是一个应用的入口 也代表了这个应用主线程 这和c程序中的main函数很相似

  关于这个main方法 应该好好理解清楚 在下面这个网址中有一篇文章《Java main方法如何弄清进程问题》 对其讲的很好

  

  Java main方法需要我们不断的学习 下面我们就看看如何才能更好的使用呢?首先我们来看看架构上的问题 随着计算机技术的发展 编程模型也越来越复杂多样化

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

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

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

  第一 需要弄清的问题

  如同程序和进程的区别 要掌握多线程编程 第一要弄清的问题是 线程对象和线程的区别

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

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

  天下难事必始于易 天下大事必始于细

  让我们先从最简单的 单线程 来入手

  ( )带引号说明只是相对而言的单线程

  ( )基于java

  class BeginClass

  public static void main(String[] args)

  for(int i= ;i< ;i++)

  System out println( 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()

  System out println( Thread say:Hello World! );

  

  

  public class MoreThreads

  public static void main(String[] args)

  new MyThread();

  new MyThread() start();

  System out println( Main say:Hello World );

  

  

  执行这个程序 main方法第一行产生了一个线程对象 但并没有线程启动

  Java main方法第二行产生了一个线程对象 并启动了一个线程

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

cha138/Article/program/Java/gj/201311/27543

相关参考

知识大全 关于Java多线程技术中所有方法的详细解析

Java进阶:关于Java多线程技术中所有方法的详细解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 关于JAVA多线程并发synchronized的测试与合理使用

关于JAVA多线程并发synchronized的测试与合理使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 java线程简介(线程的生命)

  创建线程      在Java程序中创建线程有几种方法每个Java程序至少包含一个线程主线程其它线程都是通过Thread构造器或实例化继承类Thread的类来创建的    Java线程可以通过直接

知识大全 关于线程的停止问题

  多线程是java的一个优势java使得程序员可以很方便的进行多线程程序开发获得更好的性能  关于多线程的概念以及一般的多线程编程比如如何以及为何实现runnable接口为何stop()会被Depr

知识大全 Java 6中的线程优化真的有效么

Java6中的线程优化真的有效么?[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  关于结果

知识大全 Java多线程如何创建多个线程

Java多线程如何创建多个线程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java多线程的同

知识大全 JAVA 线程编程----两个线程的程序

JAVA线程编程----两个线程的程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  于Java

知识大全 Java的多线程-实现多线程及线程的同步

Java的多线程-实现多线程及线程的同步  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一.实现

知识大全 Java多线程编程基础之线程和多线程

Java多线程编程基础之线程和多线程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  随着计算机技

知识大全 Java的用户线程和守护线程

Java的用户线程和守护线程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!