当前位置:七道奇文章资讯编程技术Java编程
日期:2011-01-26 02:54:00  来源:本站整理

Java多线程程序筹划初步入门[Java编程]

赞助商链接



  本文“Java多线程程序筹划初步入门[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

    在Java语言产生前,传统的程序计划语言的程序同一时刻只能单任务操作,效率非常低,比方程序常常在接纳数据输入时发生阻塞,只有等到程序得到数据后才能持续运行. 随着Internet的迅猛发展,这种情况越来越不能让人们忍耐:假如网络接纳数据阻塞,后台程序就处于等候状况而不持续任何操作,而这种阻塞是常常会碰到的,此时CPU资源被白白的闲置起来.假如在后台程序中可以同时处理多个任务,该多好啊!应Internet技术而生的Java语言办理了这个问题,多线程程序是Java语言的一个很重要的特点.在一个Java程序中,我们可以同时并行运行多个相对独立的线程,比方,我们假如成立一个线程来举行数据输入输出,而成立另一个线程在后台举行别的的数据处理,假如输入输出线程在接纳数据时阻塞,而处理数据的线程仍旧在运行.多线程程序计划大大提高了程序履行效率和处理本领.

    线程的成立

    我们知道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()办法大概还在运行,这样,线程的启动和运行并行举行,实现了多任务操作.

    线程的优先级

    关于多线程程序,每个线程的重要程度是不尽相同,如多个线程在等候得到CPU时间时,常常我们需求优先级高的线程优先抢占到CPU时间得以履行;又如多个线程交替履行时,优先级决意了级别高的线程得到CPU的次数多一些且时间多长一些;这样,高优先级的线程处理的任务效率就高一些.

    Java中线程的优先级从低到高以整数1~10表示,共分为10级,设置优先级是通过调用线程对象的setPriority()办法,如上例中,设置优先级的语句为:

thread1 threadone=new thread1(); file://用Thread类的子类成立线程;
Thread threadtwo=new Thread(new thread2()); file://用Runnable接口类的对象成立线程;
threadone.setPriority(6); file://设置threadone的优先级6;
threadtwo.setPriority(3); file://设置threadtwo的优先级3;
threadone.start(); threadtwo.start(); file://strat()办法启动线程;

    这样,线程threadone将会优先于线程threadtwo履行,并将占据更多的CPU时间.该例中,优先级设置放在线程启动前,也可以在启动后举行设置,以满意差别的优先级需求.


  以上是“Java多线程程序筹划初步入门[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .