码迷,mamicode.com
首页 > 编程语言 > 详细

18.2 实现线程的两种方式

时间:2018-09-02 11:55:44      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:color   new t   异常   构造方法   class   对象   public   建立   star   

一、概述
  在Java中主要提供两种方式实现线程,分别为继承java.lang.Thread类与实现java.lang.Runnable接口。

二、继承Thread类
  a、Thread类是java.lang包中的一个类,从这个类中实例化的对象代表线程,程序员启动一个新线程需要建立Thread类实例。
  Thread类中常用的两个构造方法如下:
    public Thread():创建一个新的线程对象。
    public Thread(String threadName):创建一个名称为threadName的线程对象。
  b、完成线程真正功能的代码放在类的run()方法中,当一个类继承Thread类后,就可以在该类中覆盖run()方法,将实现该线程功能的代码写入run()方法中,然后同时调用Thread类中的start()方法执行线程,也就是调用run()方法。
  c、Thread对象需要一个任务来执行,任务是指线程在启动时执行的工作,该工作的功能代码被卸载run()方法总。
  run()方法必须使用以下语法格式:
    public void run(){
    }
  d、当执行一个线程程序时,就自动产生一个线程,主方法正式在这个线程上运行的。当不在启动其它线程是,该程序就是单线程程序,如在本章已签的程序都是单线程程序。主方法线程启动有java虚拟机负责,程序员负责启动自己的线程。
  代码如下:
    public static void main(String[] args){
      new ThreadTest().start();
    }
注意:(1)、如果start()方法调用一个已经启动的线程,系统将抛出IllegalThreadStateException异常。
      (2)、在main方法中,使线程执行需要调用Thread类中的start()方法,strat()方法调用被覆盖的run()方法,如果不调用start()方法,线程永远都不会启动,在主方法没有调用start()方法之前,Thread对象只是一个实例,而不是一个真正的线程。

技术分享图片
 1 package com.lzw;
 2 
 3 public class ThreadTest extends Thread {    //指定继承Thread类
 4     private int count = 10;
 5     public void run() {        //重写run()方法
 6         while(true) {
 7             System.out.print(count + "  ");
 8             if (--count == 0) {
 9                 return;
10             }
11         }
12     }
13     public static void main(String[] args) {
14         new ThreadTest().start();    
15     }
16 }
View Code

技术分享图片

三、实现Runnable接口

 

18.2 实现线程的两种方式

标签:color   new t   异常   构造方法   class   对象   public   建立   star   

原文地址:https://www.cnblogs.com/studycode/p/9573245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!