线程控制
static void sleep(long millis)
使当前正在执行的线程停留(暂停执行)指定的毫秒数void join()
等待这个线程死亡void setDaemon(boolean on)
将此线程标记为守护线程,当运行的线程都是守护线程时,Java虚拟机将退出Thread.yield( )
使当前线程从执行状态(运行状态)变为可执行态(就绪状态)
sleep例子
public class ThreadSleepDemo {
public static void main ( String [ ] args) {
ThreadSleep ts1= new ThreadSleep ( ) ;
ThreadSleep ts2= new ThreadSleep ( ) ;
ThreadSleep ts3= new ThreadSleep ( ) ;
ts1. setName ( "曹操" ) ;
ts2. setName ( "刘备" ) ;
ts3. setName ( "孙权" ) ;
ts1. start ( ) ;
ts2. start ( ) ;
ts3. start ( ) ;
}
}
public class ThreadSleep extends Thread {
@Override
public void run ( ) {
for ( int i = 0 ; i < 100 ; i++ ) {
System . out. println ( getName ( ) + ":" + i) ;
try {
Thread . sleep ( 1000 ) ;
} catch ( InterruptedException e) {
e. printStackTrace ( ) ;
}
}
}
}
孙权: 0
曹操: 0
刘备: 0
曹操: 1
刘备: 1
孙权: 1
join例子
public class ThreadJoinDemo {
public static void main ( String [ ] args) {
ThreadJoin tj1= new ThreadJoin ( ) ;
ThreadJoin tj2= new ThreadJoin ( ) ;
ThreadJoin tj3= new ThreadJoin ( ) ;
tj1. setName ( "康熙" ) ;
tj2. setName ( "四阿哥" ) ;
tj3. setName ( "八阿哥" ) ;
tj1. start ( ) ;
try {
tj1. join ( ) ;
} catch ( InterruptedException e) {
e. printStackTrace ( ) ;
}
tj2. start ( ) ;
tj3. start ( ) ;
}
}
public class ThreadJoin extends Thread {
@Override
public void run ( ) {
for ( int i = 0 ; i < 100 ; i++ ) {
System . out. println ( getName ( ) + ":" + i) ;
}
}
}
daemon例子
public class ThreadDaemon extends Thread {
@Override
public void run ( ) {
for ( int i = 0 ; i < 100 ; i++ ) {
System . out. println ( getName ( ) + ":" + i) ;
}
}
}
public class ThreadDaemonDemo {
public static void main ( String [ ] args) {
ThreadDaemon td1= new ThreadDaemon ( ) ;
ThreadDaemon td2= new ThreadDaemon ( ) ;
td1. setName ( "关羽" ) ;
td2. setName ( "张飞" ) ;
Thread . currentThread ( ) . setName ( "刘备" ) ;
td1. setDaemon ( true ) ;
td2. setDaemon ( true ) ;
td1. start ( ) ;
td2. start ( ) ;
for ( int i = 0 ; i < 10 ; i++ ) {
System . out. println ( Thread . currentThread ( ) . getName ( ) + ":" + i) ;
}
}
}