线程1--定义和启动线程

关键技术:

  • 线程类必须实现java.lang.Runable接口或者继承java.lang.Thread类,并且实现run方法,run方法没有返回值,也没有输入参数,也不允许抛出异常。
  • 调用Thread类的start实例方法启动一个线程。调用该方法后,线程准备启动,当获得CPU资源时,start方法将自动调用run方法,线程才真正开始运行。

 

package  book.thread;

import  java.util.Date;

public   class  DefineThread {
    
/**
     * 通过继承java.lang.Thread类定义线程
     
*/
    
class  ThreadA  extends  Thread{
        
/**     线程被运行的时刻     */
        
private  Date runDate;
        
/**
         * 当线程被运行时调用此方法
         
*/
        
public   void  run(){
            System.out.println(
" ThreadA begin, " );
            
this .runDate  =   new  Date();
            System.out.println(
" ThreadA end. " );
        }
    }
    
    
/**
     * 通过实现java.lang.Runnable接口定义线程
     
*/
    
class  ThreadB  implements  Runnable{
        
/**     线程被运行的时刻     */
        
private  Date runDate;
        
public   void  run(){
            System.out.println(
" ThreadB begin, " );
            
this .runDate  =   new  Date();
            System.out.println(
" ThreadB end. " );
        }
    }
    
/**
     * 启动一个ThreadA线程
     
*/
    
public   void  startA(){
        Thread threadA 
=   new  ThreadA();
        
// 调用Thread的start方法启动线程
        threadA.start();
    }
    
/**
     * 启动一个ThreadB线程
     
*/
    
public   void  startB(){
        Runnable tb 
=   new  ThreadB();
        
// 用Runnable对象构造线程
        Thread threadB  =   new  Thread(tb);
        threadB.start();
    }
    
    
public   static   void  main(String[] args) {
        DefineThread test 
=   new  DefineThread();
        
// 线程的运行具有不确定性,先启动的线程不一定先运行,取决于虚拟机。
        test.startA();
        test.startB();
    }
}



转自:http://www.blogjava.net/kissyan4916/articles/279680.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值