一. 多线程优点:
二. 多线程基本方法:
1. sleep 停止sleep所在线程若干时间,该动作不释放锁,不影响其它线程运行
2. join 在主线程中启动另外一个线程,主线程必须等待该线程运行结束之后才能继续运行
3. yeild 放弃时间片,使各线程重新竞争
三. 同步,锁
同步不做过多解释,线程共享变量时这是必要的。
首先明确一下锁的生命周期:获取锁,运行代码,释放锁 (注意能造成阻塞的只能是 同一把锁)
1 对象的内置锁:
每一个java对象都有一个唯一的锁(和实例11对应),该锁由synchronized关键字实现,线程进入代码块获取锁,出代码立即释放锁。
可以在方法声明中加 synchronized、代码内部加synchronized(synchronized (this){do sth})、
2 锁的重入性:
对于java来讲,阻塞的粒度是线程而不是调用,线程运行的内部不会出现锁的竞争。
3 同步性能优化:
应该把同步代码块中不影响共享变量且执行时间较长的代码独立出去