java基础关于线程
来源:互联网 发布:淘宝usa商城 假货 编辑:程序博客网 时间:2024/05/16 13:52
黑马视频笔记:
线程安全问题的解决:
1,synchronized分为同步代码块和同步函数,使用的时候需要注意的是两者的锁需一致,是this。
如果在同步函数和共享变量上添加static(即静态的同步方法),那么锁又会变成什么?
static方法中不可以定义this,静态进内存时,内存中没有本类对象,但是一定有该类对应的字节码文件对象。
所以此时锁是类名.class
2.在单例设计模式中,懒汉式也会出现线程安全问题,修改代码如下:
//懒汉式 延迟加载(只有调用方法的时候才会创建对象,对内存使用的便利)
3 class Single{
2 private static Single s = null;
1 private Single(){}
13 public static synchronized Single getInstance(){ //synchronized加在此处的弊端有:线程很多,每个线程到这的时候获取实例都要判断锁,比较低效
1 if (s == null){
2 s = new Single();
3 }
4 return s;
5 }
6 }
7
8 class SingleDemo{
9 public static void main(String[] args){
10 System.out.println("HelloWorld");
11
12 }
13 }
//修改后的懒汉式
//懒汉式
8 class Single{
7 private static Single s = null;
6 private Single(){}
5 public static Single getInstance(){
4 if(s == null ){
3 synchronized(Single.class){
2 if (s == null){
1 s = new Single();
18 }
1 }
2 }
3 return s;
4 }
5 }
- java基础关于线程
- java 基础,关于线程安全
- java基础 关于线程安全
- java基础关于线程Runnable
- 关于线程基础
- java基础关于创建线程的两种方式
- 关于java基础--线程的详解与测试
- 线程之一:JAVA线程基础
- 线程之一:JAVA线程基础
- java线程学习基础
- Java基础 -- 线程
- Java基础 -- 线程2
- JAVA线程基础
- Java 线程基础
- Java线程基础1
- java线程基础
- java基础 线程
- Java 线程基础
- 排列序号
- C++日志类libglog使用
- 二维几何常用模板
- Floyd求最小环 hdu1599 find the mincost route
- Android静态注册广播receiver检测WIFI连接状况变化
- java基础关于线程
- 组成最大多位数
- 命令上的命令
- 神奇的λ-calculus
- 字符流中第一个不重复的字符(哈希表+vecor+剑指offer)
- Android layout布局属性、标签属性总结大全
- 杭电1466计算直线的交点数
- Servlet多线程机制
- 线程的其他特征