这两节课学习了关于线程的基础和线程的方法

    在第58节课上,拓哥用一个火车站售票窗口的小例子,
    给我们讲解了关于线程同步售票的案例,通过售票窗卖票的案例
    我们初步认识到线程的工作原理。

    在第59节课上,拓哥用的是仓库、生产者、消费者
    引入了[生产消费者模型]的例子来讲解关于线程安全问题。

    使用synchronized关键字对线程”加锁”
    ①、将synchronized关键字放在方法的结构上:

    1. public synchronized void get(){}

    ②、将synchronized关键字放在方法内部,在代码里:

    1. public void get(){
    2. Coding代码....
    3. synchronized(被锁定的对象){
    4. Coding代码......
    5. }
    6. }

    利用Object中的三方方法,控制线程来回切换:
    wait(); notify(); notifyAll();

    还有关于:sleep方法和wait方法的区别:

    sleep方法 wait方法

    1. 所属类
    Thread类 Object类

    2. 调用方式
    类名. 对象.

    3. 理解
    哪个位置调用了方法
    哪个线程就进行等待
    对象调用方法
    访问对象的其他线程等待

    4. 唤醒
    sleep不需要被人唤醒 wait需要其他对象调用notify唤醒

    5. 锁
    不会释放锁 等待后会释放锁