java30
1.多线程
多线程实现方式:
继承Thread:
注意:使用的是start方法,而不是run方法
实现runnable:
利用Callable接口和Future接口方式实现:
总结:
线程类Thread的成员方法:
注意:父类没有throws异常,那么子类就不能throws,只能trycatch
线程的默认优先级是5(1最后,10最先)
yield作用:让线程尽可能的平分cpu的使用
join的作用:在线程1前面插入线程2,等线程2运行完全部代码再运行线程1
线程的生命周期:
线程的安全问题与同步代码块:
注意:线程在执行代码的时候,cpu执行权随时会被其他线程抢走。
不注意这个细节会出现重复和超出的问题
改进:
注意:锁的打开和关闭是自动执行的
同步方法:
买票:
改进:
StingBuilder与StringBuffer:
buffer的方法都是同步的,因此是多线程安全的,要是程序是单线程就使用builder
Lock锁:
买票改进: