![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
thread
weixin_43585090
这个作者很懒,什么都没留下…
展开
-
线程Thread->如何获得synchronized(共享资源)?
线程Thread->如何获得synchronized(共享资源)? Java对象可以分为三个区域存储在堆中,其中有一个区域叫做对象头,对象头中有一个指向moniter对象的指针,这个moniter对象随着Java对象的创建而创建。 moniter对象有很多属性,其中: count:记录锁的重入次数 owner:记录当前moniter对象被哪个线程持有的 waitSet:处于wait状态的线程,会被放入这个集合.set无序集合也能验证被唤醒的线程是随机的 entryList:没有获得锁的线程将会在这里等原创 2020-11-05 09:13:44 · 71 阅读 · 0 评论 -
synchronized,线程,资源的关系
synchronized,线程,资源的关系 //synohronized的三种使用方式 //1.实例方法 public synchronized void foo1(){ //do something... } synchronizd修饰在实例方法上,当前线程锁的是调用这个方法的实例 锁的持有者:当前线程 锁的资源:调用该方法的实例 //2.静态方法 public static synchronized void foo2(){ //do something... } synchronized修饰在原创 2020-11-04 16:31:24 · 35 阅读 · 0 评论 -
wait()和sleep()的区别
wait和sleep的区别 1.wait()是Object的实例方法。sleep()是Thread的静态方法 2.wait()方法会释放当前线程对当前实例的监听所有权,当前线程进入等待池,所以wait方法要写在同步方法块中或同步方法中。sleep方法不会释放当前锁。 3.wait(0)方法需要通过notify或notifyAll方法唤醒,抢到锁后继续执行。sleep()方法只需重新获得CPU的时间片就可以继续执行 ...原创 2020-11-04 15:43:18 · 77 阅读 · 0 评论