线程下载案例
package xiancheng; import java.util.Random; public class XunLei { public static void main(String[] args) throws InterruptedException { System.out.println("开始下载"); MyTask t=new MyTask("大圣归来.mp4"); MyTask t1=new MyTask("大圣走了.mp4"); MyTask t2=new MyTask("大圣又来了.mp4"); t.setName("猴哥"); System.out.println(Thread.currentThread().getName());//或者getId t.start(); t1.start(); t2.start(); t.join();//让主程序执行完毕出现在最末端 t1.join(); t2.join(); System.out.println("主线程执行完毕"); } } //创建一个线程类(下载任务) class MyTask extends Thread{ String taskName; public MyTask(String taskName) { super(); this.taskName = taskName; } Random r=new Random(); //线程体; @Override public void run() { for(int i=1;i<=100;i++){ System.out.println(Thread.currentThread().getName()+","+this.taskName+"下载完成 "+i+"%");
Thread.currentThread().yield(); try { Thread.sleep(r.nextInt(100)+1); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } System.out.println(this.taskName+"下载完成"); } }