1.线程的状态
Thread join 方法
public class JoinMain {
public volatile static int i = 0;
public static class AddThread extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
for(i=0;i<100000;i++);
}
}
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
AddThread at = new AddThread();
at.start();
//join 方法使主线程main方法等待AddThread 线程执行完成
at.join();
System.out.println(i);
}
}
守护线程:
public class DaemonDemo {
public static class DaemonT extends Thread{
public void run(){
while(true){
System.out.println("i am alive");
try{
Thread.sleep(1000);
}catch(Exception e){
e.printStackTrace();
}
}
}
}
public static void main(String[] args) throws InterruptedException {
Thread t = new DaemonT();
//main 线程完成了,t 线程也就挂了
t.setDaemon(true);
t.start();
Thread.sleep(2000);
}
}
优先级demo
public class PriortityDemo {
public static class HightPriority extends Thread {
static int count = 0;
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
synchronized (PriortityDemo.class) {
count++;
if (count > 100000) {
System.out.println("high priority is complete ");
break;
}
}
}
}
}
public static class LowPriority extends Thread {
static int count = 0;
public void run() {
while (true) {
synchronized (PriortityDemo.class) {
count++;
if (count > 100000) {
System.out.println("low priority is complete ");
break;
}
}
}
};
}
public static void main(String[] args) {
Thread high = new HightPriority();
LowPriority low = new LowPriority();
high.setPriority(Thread.MAX_PRIORITY);
low.setPriority(Thread.MIN_PRIORITY);
low.start();
high.start();
}
}