文本内容:
项目多线程技术9
一、线程的状态为哪些?新建状态
1.在一个线程对象被声明并创建时,该线程就处于新建状态,此时仅由为其分配内存JVM空间,并初始化其成员变量的值.就绪状态2线程对象调用方法之后,该线程就处于就绪状态,进入线程队列排队,等待调度运start行运行状态
3.如果处于就绪状态的线程获得了资源,就开始执行方法中的线程执行体,此时CPU run该线程处于运行状态方法规定了线程的具体使命在线程的方法结束之前,不能再run run调用该线程的方法,否则会发生异常start IlegalThreadStateException.阻塞状态4当处于运行状态的线程失去所占用的资源之后,便进入阻塞状态消亡状态
5.线程因异常被强制结束运行或执行完方法后,就会处于消亡状态此时的线程已释run放分配给它的内存,不再具有继续运行的能力二在Java中,线程进入阻塞状态可能哪些原因?将资源切换给其他线程
1.JVM CPU.线程执行了方法进入休眠经过指定的时间之后,该2sleepint millsecondmillsecond线程将重新进入线程队列等候资源,以便从中断处继续运行CPU.线程执行了方法进入等待状态在这种情况下,必须由其他线程调用方法3wait notifyO通知它重新进入线程队列等候资源,以便从中断处继续运行CPU,线程执行某个操作例如,执行耗时的操作进入阻塞状态在这种情况下,只有当4I/O引起阻塞的原因消除时,该线程才会重新进入线程队列等候资源,以便从中断处继续运CPU行
三、继承Thread类创建多线程的步骤?.继承类,并重写方法1Thread run类中的方法没有具体内容,需要在子类中重写该方法来规定线程要完成的具Thread run体任务方法通常也被称为线程执行体run.创建子类的实例,即创建线程对象2Thread.调用线程对象的方法启动线程3start线程对象被创建之后,不会自动进入线程队列,也不知道它的存在此时需要调用JVM方法启动线程,然后进入线程队列等候执行当线程获得资源时,方法就会start CPUrun即刻执行,进入运行状态
四、Thread类创建线程的构造方法是什么?:创建一个线程对象public Thread创建一个有指定名称的线程对象public ThreadStringthreadName:
五、什么是Runnable接口创建多线程的步骤?.定义接口的实现类,并重写该接口的方法1Runnable run接口中只定义了一个抽象方法事实上类也是接口的一个实Runnable run,Thread Runnable现类,类的方法是接口的方法的重写,也就是说,前文继承Thread runRunnable nmThread类重写的方法实际上重写的是接口的方法nm Runnablerun.创建接口实现类的实例作为线程对象的运行对象,传递给构造方法来创建线2Runnable程对象接口的实现类采用以下两种形式的构造方法创建线程对象Runnable使用实现了接口的类对象作为运行对象,•public ThreadRunnable target:Runnabletarget创建一个线程对象使用一个有指定名称的对象作为运行•public ThreadRunnabletarget,String name:target对象,创建线程对象,调用线程对象的方法,启动线程3start。
个人认证
优秀文档
获得点赞 0