Thread:    fuck u 和he交替输出

 

 

 

 

public class Mythread extends Thread{   //自定义线程类继承Thread类

@Override

public void run(){    //重写run方法

for(int i=0;i<100;i++){

System.out.println("fuck u");

                 }

​ }

public static void main(String[] args) {

Mythread t=new Mythread();

t.start();  //调用strat启动

 

for(int i=0;i<1000;i++){

System.out.println("he");

                   }

​        }  

​ }

 

Runnable

 

 

 

 

 

 

 

 

public class Run implements Runnable{
@Override
public void run() {


}
public static void main(String[] args) {
Run r=new Run();
new Thread(r).start();
}
}

 

 

Callable接口:可以定义返回值;可以抛出异常

 

 

 

 

 

线程方法:

 

 

线程休眠: Thread.sleep();

1000ms=1s

sleep()

可以模拟网络延迟,倒计时等

每一个对象都有一把锁,sleep不会释放锁

 

线程礼让:Thread.yield();

礼让线程,让当前正在执行的线程暂停,但不阻塞;将线程从运行状态转为就绪状态;让CPU重新调度,礼让不一定成功看CPU心情。

这里有线程a和b,加一个yield后,a线程先执行一点,然后礼让,让b线程开始执行。

 

 

public class yield {
public static void main(String[] args) {

myyeild y=new myyeild();
new Thread(y,"a").start();
new Thread(y,"b").start();

}
static class myyeild implements Runnable{
@Override
public void run() {

System.out.println("start"+Thread.currentThread().getName());
Thread.yield();//礼让 System.out.println("end"+Thread.currentThread().getName());

}
}
}

 

 

线程停止

 

 

插队线程:Thread.join();

 

 

 

观测线程状态:

NEW:尚未启动的线程

RUNNABLE:在虚拟机中执行的线程处于这个状态

BLOCKED:被阻塞等待监视器锁定的线程

WAITING:正在等待另一个线程执行特定动作的线程

TIMED WAITING:正在等待另一个线程执行动作达到指定等待时间的线程

TERMINATED:已退出的线程

 

//观察状态

Thread.State state=thread.getState();

System.out.println(state);

 

线程优先级;

优先级用数字表示,范围1-10.

Thread.MIN_PRIORITY=1;

Thread.MAX_PRIORITY=10;

Thread.NORM_PRIORITY=5;

使用以下方式可以改变或获取优先级

getPriority().setPriority(int xxx)

 

先设置优先级再启动:

t1.setPriority(2);

t1.start();

 

 

 

线程通信

wait() 表示线程会一直等待,直到其他线程通知,与sleep不同,会释放锁

wait(long timeout) 指定等待的毫秒数

notify(唤醒一个处于等待状态的线程)

notifyAll() 唤醒同一个对象上所有调用wait()方法的线程,优先级高的线程优先调度

this.wait()

this.notifyAll()

线程池

可以避免频繁创建销毁,实现重复利用。

corePoolSize:核心池的大小

maximumPollSize:最大线程数

keepAliveTime:线程没有任务时最多保持多长时间后会终止

 

 

线程池: