Please enable JavaScript.
Coggle requires JavaScript to display documents.
多线程03 - Coggle Diagram
多线程03
-
解决多线程数据安全问题(重要)
2.synchronized
-
-
-
细节
同步代码块中的锁对象可以是任意java对象,任意java对象都可以充当锁对象的这个角色,仅限于同步代码块当中
任意java对象内部,都存在着一个标志位,标志位用来表示加锁和释放锁
我们的代码是运行在某条执行路径下(某个线程),但某个线程要执行同步代码块
访问之前会尝试对锁对象加锁,如果没有枷锁,可以访问执行
如果别的线程想要访问这个代码块,不能执行,会处于阻塞状态
但这个线程访问完了同步代码块,退出之前,会释放锁修改标志位
3.lock
-
-
-
synchronized VS lock
-
-
早期的JDK lock比synchronizaed效率高,但是新版本 效率差不多 推荐使用synchronized
1.破坏产生的原因(前两个不可改),入手点只有原子操作
-
多线程的实现方式二:Runnable接口(重要)
-
-
谁代表一个线程
Thread或者其子类对象才代表线程,Runnable子类对象,只是一个任务.
-