java多线程基础

创建线程的两种方式,第三种是再jdk1.8后第二种的变形。

java多线程基础

1.继承Thread 2.实现Runnable接口 3.Executors.newCachedThread通过线程池也可以启线程。

线程常用方法:

sleep()当前线程睡眠,把资源让出来给其他线程

yield()让出一下cpu资源,可能立马回来执行,更大可能让队列里其他线程执行。

join() 有两个线程t1,t2 再t2中调用t1.join()等t2执行结束后t1再执行。
java多线程基础

synchronized 可重入锁

Automic、Lock、sync属于自旋锁,适合线程少,执行时间短(加锁代码)的场景;执行时间长,线程数量多,使用系统锁

synch : 1.锁的是对象不是代码 2.this xxx.class 3.锁定方法 费锁定方法同时执行  4.锁升级 - 偏向所 自旋锁 重量级锁