栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java-解决线程的安全问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java-解决线程的安全问题

解决线程安全问题 关键字

synchronized

同步代码块
synchronized(同步监视器){
	//需要被同步的代码
}
  • 需要被同步的代码:操作共享数据的代码。
  • 共享数据:多个线程共同操作的变量。
  • 同步监视器:俗称“锁”,任何一个对象都可以充当锁。(要求多个线程必须共用同一把锁)
同步方法
public static synchronized void test(){
//非静态时同步监视器:this
//静态时同步监视器:当前类
}
好处

操作线程时,只能有一个线程参与,其他线程等待,相当于一个单线程的过程,解决了线程的安全问题。

坏处

速度变慢。

解决懒汉式线程安全问题
package com.threadT;

import jdk.internal.org.objectweb.asm.tree.LineNumberNode;

public class SingleTest {
}

class Bank {
    private Bank() {
    }

    private static Bank instance = null;

    //方式一
    

    //方式二
    

    //优化
    public static Bank getInstance() {
        if (instance == null) {
            synchronized (Bank.class) {
                if (instance == null) {
                    instance = new Bank();
                }
                return instance;
            }
        }
        return instance;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/338164.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号