预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共61页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第8章多线程8.1多线程的概念8.1多线程的概念8.2线程类8.2.1多线程编程中常用的常量和方法8.2.1多线程编程中常用的常量和方法8.2.1多线程编程中常用的常量和方法【实例8-1】 classgetThreadInfo{ publicstaticvoidmain(Stringargs[]){ Threadcurr; intnum=7; curr=Thread.currentThread(); curr.setPriority(num); System.out.println("当前线程:"+curr); System.out.println("线程名:"+curr.getName()); System.out.println("优先级:"+curr.getPriority()); } } 程序输出结果: 当前线程:Thread[main,7,main] 线程名:main 优先级:78.2.2线程的生命周期8.2.2线程的生命周期8.2.2线程的生命周期8.2.2线程的生命周期图8-1线程生命周期示意图8.2.3创建多线程的方法8.2.3创建多线程的方法【实例8-2】 classmyThreadextendsThread{ intsleeptime; publicmyThread(Stringid){//构造函数 super(id); sleeptime=(int)(Math.random()*100); System.out.println("TheThreadName="+getName()+ ",Sleeping:"+sleeptime); } publicvoidrun(){ try{//通过线程睡眠模拟程序的执行 Thread.sleep(sleeptime); } catch(InterruptedExceptione){ System.err.println("Exception:"+e.toString()); } System.out.println("TherunningThread="+getName()); } }【实例8-2】 publicclassfourThreads{ publicstaticvoidmain(Stringargs[]){ myThread t1,t2,t3,t4; t1=newmyThread("Thread1"); t2=newmyThread("Thread2"); t3=newmyThread("Thread3"); t4=newmyThread("Thread4"); t1.start(); t2.start(); t3.start(); t4.start(); } }【实例8-2】 程序某次的运行结果: heThreadName=Thread1,Sleeping:6 TheThreadName=Thread2,Sleeping:49 TheThreadName=Thread3,Sleeping:19 TheThreadName=Thread4,Sleeping:69 TherunningThread=Thread1 TherunningThread=Thread3 TherunningThread=Thread2 TherunningThread=Thread4 ★注意:Thread类中的run()方法具有public属性,覆盖该方法时,前面必须带上public。8.2.3创建多线程的方法【实例8-3】 classmyThreadimplementsRunnable{ intcount=1,number; publicmyThread(intnum){ number=num; System.out.println("创建线程:"+number); } publicvoidrun(){ while(true){ System.out.println("线程"+number+":计数"+count); if(++count==6)return; } } } publicclassrunnableThreads{ publicstaticvoidmain(Stringargs[]){ for(inti=0;i<5;i++)newThread(newmyThread(i+1)).start(); } }【实例8-3】 程序运行某次的输出结果: 创建线程:1 创建线程:2 线程1:计数1 线程1:计数2 线程1:计数3 线程2:计数1 线程2:计数2 线程2:计数3 创建线程:3