1.Thread.yield与Thread.sleep.
- a. yield让出自己执行cpu的时间,使该线程进入就绪状态。此时该线程与其他线程具有相同的权利进行争用cpu的机会。
- b.sleep使自己进入阻塞状态。
- c.两种方式都不会释放自己的锁资源。
- d.进程运行图:
阻塞—>就绪—>运行
2.重排序现象.
3.只要数据需要被跨线程共享,就进行恰当的同步。
4.可见性
- a.当访问一个共享的可变变量时,要求所有线程由通风一个锁进行同步,是为了保证一个线程对数值进行的写入,其他线程也都可以看见。
5.不可变对象永远是线程安全的
6.tihs引用的溢出
- 指构造函数中new了一个新线程并使线程开始运行,此时改线程共享变量。
7.安全的发布模式
- 如果一个对象不是不可变的,它就必须被安全的发布