这两节课学习了关于线程的基础和线程的方法
在第58节课上,拓哥用一个火车站售票窗口的小例子,
给我们讲解了关于线程同步售票的案例,通过售票窗卖票的案例
我们初步认识到线程的工作原理。
在第59节课上,拓哥用的是仓库、生产者、消费者
引入了[生产消费者模型]的例子来讲解关于线程安全问题。
使用synchronized关键字对线程”加锁”
①、将synchronized关键字放在方法的结构上:
public synchronized void get(){}
②、将synchronized关键字放在方法内部,在代码里:
public void get(){
Coding代码....
synchronized(被锁定的对象){
Coding代码......
}
}
利用Object中的三方方法,控制线程来回切换:
wait(); notify(); notifyAll();
还有关于:sleep方法和wait方法的区别:
sleep方法 | wait方法 | |
---|---|---|
1. 所属类 |
Thread类 | Object类 |
2. 调用方式 |
类名. | 对象. |
3. 理解 |
哪个位置调用了方法 哪个线程就进行等待 |
对象调用方法 访问对象的其他线程等待 |
4. 唤醒 |
sleep不需要被人唤醒 | wait需要其他对象调用notify唤醒 |
5. 锁 |
不会释放锁 | 等待后会释放锁 |