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 ,