Java多线程程序设计入门

豆豆网   技术应用频道   2006年03月31日    社区交流

本文详细介绍Java多线程程序设计入门

  运行该程序就可以看出,线程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时间。该例中,优先级设置放在线程启动前,也可以在启动后进行设置,以满足不同的优先级需求。

责编:豆豆技术应用

正在加载评论...