synchronized 使用: 1:当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。 2:然而,当一个线程访问object的一个synchronized(th ...
分类:
其他好文 时间:
2018-06-26 23:50:40
阅读次数:
250
synchronized: 1、取得的锁都是对象锁,而不是把一段代码或方法(函数)当作锁; 2、多个线程访问的必须是同一个对象。 3、当一个线程执行的代码出现异常时,其所持有的锁会自动释放 4、A线程持有Object对象的Lock锁,B线程可以以异步方式调用Object对象中的非synchroniz ...
分类:
其他好文 时间:
2018-06-24 11:45:55
阅读次数:
157
1,notify的同步块完了,才会运行wait的同步块 2,interrupt()不是静态方法,用在wait的线程上会有InteruptException,锁也会被释放 3,notify()唤醒的线程是随机的,以前不知道唤醒哪个,了解到notify是object对象有的,哪个用相关的对象锁了,就会解 ...
分类:
编程语言 时间:
2018-06-14 01:07:26
阅读次数:
175
对象锁和类锁wait sleepAMSactivity启动流程handler消息机制JNI相关 1.looper.prepare()做了啥操作https://www.cnblogs.com/ganchuanpu/p/5979103.html2.looper如何知道当前线程是哪个线程https://b ...
分类:
其他好文 时间:
2018-06-12 23:32:15
阅读次数:
366
转自:http://www.tuicool.com/articles/AraaQbZ 论integer是地址传递还是值传递 Integer 作为传参的时候是地址传递 , 可以参考如下例子,在程序刚启动的时候把 Integer 的index 对象锁住 ,并且调用了 wait方法,释放了锁的资源,等待n ...
分类:
编程语言 时间:
2018-06-08 18:29:59
阅读次数:
154
首先,要知道,synchronized关键字修饰普通方法时,获得的锁是对象锁,也就是this。而修饰静态方法时,锁是类锁,也就是类名.class。 synchronized修饰普通方法 Synchronized修饰普通方法时,锁是对象锁(this)。 当该类中有多个普通方法被Synchronized ...
分类:
其他好文 时间:
2018-06-07 21:59:49
阅读次数:
191
wait、notify、notifyAll wait、sleep、yield区别? sleep 让出cpu使用权但是不会释放锁。 public class Test { public static void main(String[] args) { Object obj=new Object(); ...
分类:
编程语言 时间:
2018-06-03 21:31:43
阅读次数:
191
修改 2. 修改: private static object objLock = new object();//对象锁的对象 ...
分类:
编程语言 时间:
2018-05-31 16:43:48
阅读次数:
160
最近在研究Java 多线程的只是,经常能看到synchronize关键字,以前只是一眼带过,没有细究,今天趁这个机会,整理下 synchronize作为多线程关键字,是一种同步锁,它可以修饰以下几种对象: 代码块:被修饰的代码块称为同步语句块,其作用的范围是大括号{ }里的代码,作用的对象是调用这个 ...
分类:
其他好文 时间:
2018-05-27 19:02:35
阅读次数:
276
1、sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。 例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRI ...
分类:
编程语言 时间:
2018-05-27 13:41:07
阅读次数:
180