多线程

join方法
在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。

守护线程
Java虚拟机退出时Daemon线程中的finally块并不一定会执行

synchronized
锁的是对象。加在非静态方法上,锁的是当前对象【同一类中,不同非静态方法加synchronized,锁的是同一对象,不能同步执行】。加在静态方法上,锁的是当前类【同一类中,不同静态方法,同上】。加在代码块上,锁的是指定对象。

volitile:作用是修改后其它线程可见,不具备原子性。使用场景是一个线程写,其它线程读。

ThreadLocal:对外提供set get remove 方法。值的变动修改的为Thread.currentThread().threadLocals的值,key为该ThreadLocal对象,value为set的值。因此可以说每个线程都有该变量的副本

wait()、notify()、notifyAll()为Object的方法。
wait():释放调用对象的锁,因此需和synchronized搭配先锁住该对象。
notify:随机唤醒一个持有该对象锁的线程
notifyAll:全部唤醒持有该对象锁的线程。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。