设为首页 加入收藏

TOP

JAVA线程编程:两个线程的程序
2014-11-19 21:56:52 】 浏览:6070
Tags:JAVA 线程 编程 两个 程序

  于Java好的方面是它有内置的写多线程的支持。Java的设计者知道多线程编程的价值,所以聪明决定在Java的核心部分就决定直接支持线程。在第7章“并发存取对象和变量”就阐述了在Java语言中,synchronized关键字如何被用来锁住对象和类来控制并发存取数据。Thread和ThreadGroup类就在java.lang包的核心 API中。通过wait( ) notify( ) 方法的支持,Java中所有类的父类Object具有线程间通信的能力。即使当前操作系统不支持线程概念,一个写好的JVM也可以模拟多线程环境。在 Java中,线程的支持不是事后的,而是从一开始设计时就包括进来的。


  一个简单的两个线程例子


  概述


  这章展示了创建并在一个小的Java应用中运行线程是如何简单。第一个线程是总是有JVM创建的“main”线程,该线程开始运行程序。这个主线程然后创建第二个线程。每个线程将在控制台打印各自信息,以此来证明他们好像以同步方式运行。


  这章中例子创建一个线程的步骤如下:


  继承java.lang.Thread类


  在继承Thread的子类中重写run( )方法;


  创建这个新类的实例


  调用该实例的start( )方法


  继承java.lang.thread类


  在JavaVM中每个线程与java.lang.Thread类的一个实例想关联。这些Thread对象作为与底层操作系统线程交互的接口。通过类中的方法,可以对线程进行开始,停止,中断,命名、设置优先级和查询有关当前状态。


  注意:有两种方式可创建一个允许线程运行与其中的类。一种方式是继承Thread类。另一种是继承任意类并且实现Runnable接口。为了说明的原因,继承Thread类是最简单的方法,本书开始就是用该方法。在实际中,实现Runnable接口工作地更好些。


  在这个例子中,创建一个新线程的第一步是继承java.lang.Thread类:


  Java代码


  public class TwoThread extends Thread {


  // ...


  }


  TwoThread子类是一个(IS-A) Thread,并且继承了父类的protected 和public成员。TwoThread除了从父类中继承的其他行为之外,它还能被开始、停止、中断、命名、设置优先级以及查询线程当前状态。


  重写run()方法


  继承Thread类之后,下一步就是重写run()方法,因为Thread类中方法什么也没做:


  Public void run() { }


  当一个新线程开始运行,进入该线程的入口就是run()方法。run()中的第一条语句就是新线程执行的第一条语句。线程执行的每条语句都包含在run()方法中或包含在被run()方法直接或间接调用的其他方法中。从run()被调用之前到run()返回,新线程被认为是活着的。run()返回之后,线程就死掉了。当一个线程死了之后不能重新开始。


  在本章的例子中,run()方法被重写为迭代10次并且每次打印New thread信息:


  Java代码


  public void run() {


  for ( int i = 0; i < 10; i++ ) {


  System.out.println(“New thread”);


  }


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇OSCache缓存对象的总结 下一篇oscache的页面缓存

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目