当前位置:编程学习 > JAVA >>

java线程小结

线程的状态:

新建状态、就绪状态、运行状态、阻塞状态、终止状态
线程有三种可能:

1、时间片执行时间表用完它将重新回到“就绪状态”,等等待新的调度运行机会
2、线程的run方法代码执行完毕将进入到“终止状态”
3、线程可能因某些事件的发生或者等待某个资源而进入到“阻塞状态”。阻塞条件解除后线程将进入“就绪状态”
如下几种线程会放弃CUP:
1、当前时间片用完
2、线程在执行时调用了yield()或sleep()方法主动放弃
3、进行I/O访问,等待用户输入,导致纯种阻塞;或者为等候一个条件变量,线程调用wait()方法。
4、有高优先级的线程参与调度。
Thread类的方法


 
方法 功能
CurrentThread() 返回当前运行的Thread对象
Start() 启动线程
Run() 由调试程序调用,当run()方返回时,该线程停止
Stop() 使调用它的线程立即停止执行
Sleep(int n) 使线程睡眠n毫秒,n 毫秒后,线程可以再镒运行
Suspend() 使线程挂起,暂停运行Not Runable
Resume() 恢复挂起的线程,使其处可运行状态Runnable
Yield() 将CUP控制权主动移交到下一个可运行线程
setName(String ); 赋予线程一个名字
getName() 取得由setName()方法设置的线程序名字的字符
getPriority() 返回线程优先级
setPriority() 设置线程优先级
Join() 当前线程等待调用该方法的线程结束后,再往下执行
setDamemon(boolean) 设置该线程是daemon线程还是用户线程,Daemon线程也称服务线程,通常编成无限循环,在后台持续运行
 

Thread实例:
[html]
import java.util.*; 
public class TimePrinter extends Thread{ 
 
    int pauseTime;//中间休息时间 
    String name;//各称标识 
    public TimePrinter(int x, String n){ 
        pauseTime =x; 
        name = n; 
    } 
    public void run(){ 
        while(true){ 
            try{ 
                System.out.println(name+":"+new Date(System.currentTimeMillis())); 
                Thread.sleep(pauseTime);//线程睡眠一段时间 
            }catch(Exception e){ 
                System.out.println(e); 
            } 
        } 
    } 
    public static void main(String args[]){ 
        TimePrinter tp1 = new TimePrinter(1000,"Fast Guy"); 
        tp1.start(); 
        TimePrinter tp2 = new TimePrinter(3000,"Slow Guy"); 
        tp2.start(); 
    } 
 

 


摘自 myserverthepeople的专栏


补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,