sleep()不释放同步锁,wait()释放同步锁 sleep()的作用是让线程休眠指定的时间,时间到后自动恢复线程执行。运行的主动权是由线程决定的。 wait()可以用notify()直接唤起,运行的主动权在于控制者。 sleep()是Thread的静态方法; wait()是OBJ的静态方法,Ob ...
分类:
其他好文 时间:
2017-01-22 10:38:20
阅读次数:
166
线程不安全的问题分析: 当多线程并发访问同一个资源对象的时候,可能出现线程不安全的问题。 要解决上述多线程并发访问同一个资源的安全性问题 解决方案:A线程进入操作的时候,B和C线程只能在外等着,A操作结束,A和B和C才有机会进入代码去执行 方式1:同步代码块 语法: synchronized(同步锁 ...
分类:
编程语言 时间:
2017-01-19 18:00:57
阅读次数:
150
两个线程的run方法同时调用一个加了同步锁的方法,如果一个线程使用了suspend方法,那么会独占并且锁死这个同步方法,别的线程就永远没有办法进入这个线程了。 特别的是,在main方法中,调用一个线程使用println方法,由于其内部的print()和newline()方法是在外面加了同步锁的,所以 ...
分类:
其他好文 时间:
2017-01-01 15:37:38
阅读次数:
199
1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。每次对String对象进行改变的时候其实都等同于生成了一个新的String对象,然后将引用指向新的String对象,原String对象GC回收。 Private f ...
分类:
编程语言 时间:
2016-12-31 15:42:50
阅读次数:
156
一、单例设计模式 懒汉(线程安全问题)同步锁,每次判断锁,效率低,外层再加一个判断是否为空,效率高 1、私有化构造方法 2、声明引用类型变量,不要创建对象 3、声明静态方法获取本类对象,判断是否已经创建了本类的对象,如果已经创建了直接返回,没有则创建引用类型变量返回 二、装饰者设计模式 增强一个类的 ...
分类:
其他好文 时间:
2016-12-02 02:22:29
阅读次数:
113
单例模式主要作用:确保一个类最多只有一个实力,并提供一个全局访问点。 经典模式(懒汉): 经典模式在多线程的情况下,会导致不能正常工作; 线程同步锁(懒汉): 使用同步锁,简单粗暴,但较为消耗资源。在大量调用的放大中不推荐使用。 ‘急切’创建实例(饿汉): 可以解决多线程的同步问题,直接在类装载就实 ...
分类:
其他好文 时间:
2016-12-01 03:28:29
阅读次数:
140
tomcat服务突然无响应了,导出内存堆栈和线程堆栈,分析后发现是同步锁使用不合理导致的。 [root@prd-dtb-web-01 ~]# pgrep java10472[root@prd-dtb-web-01 ~]# jmap -heap 10472Attaching to process ID ...
分类:
其他好文 时间:
2016-11-27 16:28:13
阅读次数:
235
1.一个进程是一个独立的应用程序 2.独占内存空间 3.不是绝对意义的同时,而是cpu在进程间的来回切换 线程描述: 1.是进程内部独立运行的流程 2.线程是共享内存地址空间的 3.cpu在线程之间来回切换 实现线程的两种方式: 1.继承Thread类 2.实现Runnable接口 开启线程的方法: ...
分类:
编程语言 时间:
2016-11-27 00:01:23
阅读次数:
184
转自: http://blog.csdn.net/hsuxu/article/details/9467651 CAS CAS: Compare and Swap java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。 CAS 指的是现代 CPU ...
分类:
编程语言 时间:
2016-11-18 22:00:16
阅读次数:
317