线程的创建

我们知道Java是面向对象的程序语言,用Java进行程序设计就是设计和使用类,Java为我们提供了线程类Thread来创建线程,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。下面是一个创建启动一个线程的语句:


  Thread thread1=new Thread(); file://声明一个对象实例,即创建一个线程;


  Thread1.run(); file://用Thread类中的run()方法启动线程;


  从这个例子,我们可以通过Thread()构造方法创建一个线程,并启动该线程。事实上,启动线程,也就是启动线程的run()方法,而Thread类中的run()方法没有任何操作语句,所以这个线程没有任何操作。要使线程实现预定功能,必须定义自己的run()方法。Java中通常有两种方式定义run()方法:


  通过定义一个Thread类的子类,在该子类中重写run()方法。Thread子类的实例对象就是一个线程,显然,该线程有我们自己设计的线程体run()方法,启动线程就启动了子类中重写的run()方法。


  通过Runnable接口,在该接口中定义run()方法的接口。所谓接口跟类非常类似,主要用来实现特殊功能,如复杂关系的多重继承功能。在此,我们定义一个实现Runnable() 接口的类,在该类中定义自己的run()方法,然后以该类的实例对象为参数调用Thread类的构造方法来创建一个线程。


  线程被实际创建后处于待命状态,激活(启动)线程就是启动线程的run()方法,这是通过调用线程的start()方法来实现的。


  下面一个例子实践了如何通过上述两种方法创建线程并启动它们:


  // 通过Thread类的子类创建的线程;


   class thread1 extends Thread


    { file://自定义线程的run()方法;


     public void run()


      {


       System.out.println(/"Thread1 is running…/");


      }


     }


   file://通过Runnable接口创建的另外一个线程;


  class thread2 implements Runnable


   { file://自定义线程的run()方法;


    public void run()


    {


     System.out.println(/"Thread2 is running…/");


    }


   }


   file://程序的主类´


   class Multi_Thread file://声明主类;


    {


     plubic static void mail(String args[]) file://声明主方法;


      {


       thread1 threadone=new thread1(); file://用Thread类的子类创建线程;


       Thread threadtwo=new Thread(new thread2()); file://用Runnable接口类的对象创建线程;


       threadone.start(); threadtwo.start(); file://strat()方法启动线程;


      }


     }


  运行该程序就可以看出,线程threadone和threadtwo交替占用CPU,处于并行运行状态。可以看出,启动线程的run()方法是通过调用线程的start()方法来实现的(见上例中主类),调用start()方法启动线程的run()方法不同于一般的调用方法,调用一般方法时,必须等到一般方法执行完毕才能够返回start()方法,而启动线程的run()方法后,start()告诉系统该线程准备就绪可以启动run()方法后,就返回start()方法执行调用start()方法语句下面的语句,这时run()方法可能还在运行,这样,线程的启动和运行并行进行,实现了多任务操作。 
======================= 手机编辑器BCB版自述文件 ======================= -------- 版权声明 -------- 作者Ahui保留所有权利。 你可以以个人身份在非商业活动中使用本软件,任何 涉及商业活动的使用权,请与作者本人书面联系。 信箱:ahui@cn.gs 主页:http://ahui.cn.gs 请参考http://ahui.cn.gs/production/phone/index_bcb.html. -------- 系统需求 -------- Pentuim以上CPU win98/2000/xp IE5及以上版本 ------------ 发行文件列表 ------------ PhoneEditor.exe 主程序 readme.txt 本文件 history.xml 历史记录文件 -------- 功能列表 -------- 1.读取手机信息 2.读取手机电话本(SIM卡) 3.读取手机电话本(机身) 4.读取手机短消息(SIM卡) 5.读取手机短消息(机身) 6.编辑电话本 7.添加电话本记录 8.手机短消息发送 9.手机短消息发送记录(xml文件) 10.电话本在电脑文件(xml文件)中的保存/导入 11.短消息在电脑文件(xml文件)中的保存/导入 12.......(电话本的电脑与手机同步功能未完成) -------- 使用步骤 -------- 1.使用数据线连将手机连接到电脑的串口上(或使用红外口)。 2.运行本软件,自动查找所连接的串口。 3.或使用菜单连接手机的相应串口。 4.查看手机信息。容量为0的相关项目则表示不支持。 5.进行手机短消息及电话本的编辑、保存、恢复等操作。 6.可发送短消息。 ------------------ 已测试手机支持列表 ------------------ 机型 读电话本(机身) 读电话本(SIM卡) 读短消息(机身) 读短消息(SIM卡) SIEMENS 3568i 支持 支持 支持 支持 ERICSSON R320 不支持中文 不支持中文 支持 支持 ERICSSON T39 支持 支持 支持 支持 ALCATE OT710 不支持 支持 不支持 支持 说明:不支持包含两种情况,一种如R320的电话本,无法读出中文,因此标记为不支持。另一种 如OT710的短消息不支持机身保存,自然无法读取。特例为OT710,机身电话本能保存,本程序 暂时无法读取。 请您将手机的使用情况按上述格式反馈给我。不胜感激。 ------------ 版本更新记录 ------------ 1.1.0.0 BUG FIX 1.修正长时间读数据时程序死锁 ¦;ok 2.修正对不支持功能操作时非正常退出的问题 3.界面修改 功能增加 1.自动确定手机所在串口 1.0.0.11 除错发行 1.0.0.9 完成基本功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值