1.sleep()方法
使当前线程进入阻塞状态,可设置阻塞的时间。
public static void main(String[] args) {
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+" "+i);
if(i==5){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
2.yield()方法
使当前线程让步方法,使优先级高的线程先执行
3.join()方法
首先有两个线程,一个是使用join()方法代码的线程,一个是线程实例被调用join()方法,被调用join()方法的实例线程会先执行,拥有这段代码的线程会被阻塞,知道实例线程执行完毕。
public class ThreadJoin {
public static void main(String[] args) {
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+" "+i);
if(i==5){
myThread myThread=new myThread();
myThread.start();
try {
myThread.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
static class myThread extends Thread{
@Override
public void run() {
for(int j=0;j<10;j++){
System.out.println(Thread.currentThread().getName()+" "+j);
}
}
}
}
如上代码,主线程将被阻塞,直到myThread线程全部执行完毕。
4.设置线程优先级
每一个线程实例都可以设置线程优先级,从1~10。
ThreadPriority thread1=new ThreadPriority();
thread1.setPriority(MIN_PRIORITY);
thread1.start();
ThreadPriority thread2=new ThreadPriority();
thread2.setPriority(MAX_PRIORITY);
thread2.start();
网友评论