承接上一部分内容,起飞 _-~`
生命一哈,这里只是简单的知识点梳理,深挖的内容会单独更新,嘤~
线程的同步,synchronized
简介:线程同步,即当有一个线程在对内存操作时,其他线程都不可以对这个内存地址进行操作,直到线程完成操作,其他线程才能对该内存地址进行操作
怎么操作呢? ,,不多说,上图了 - ->
(原理可以参考上厕所问题,厕所门一关,坑位就是我的了,只有我出去了才能被其他人使用,哈哈,手动狗头)
释放锁
1、线程的同步方法或者同步代码块执行结束
2、线程的同步方法或者同步代码块遇到break,return
3、同理Error或者Exception
4、线程的同步方法或者同步代码块中执行了线程对象的wait()方法,当前线程暂停,并释放锁
下面操作不会释放锁哦:
1、线程在执行同步代码块或同步方法时,程序调用Thread.sleep() ,Thread.yield()
2、线程执行同步代码块时,其它线程调用了该线程的suspend()方法将线程挂起,该线程不会释放锁(不推荐)