java中什么是线程安全给出一个例子

本文探讨了线程安全的概念,通过一个单例模式的实现案例,解释了在多线程环境下确保代码稳定性和一致性的必要性。文章提供了一个Photoshop类的单例模式示例,展示了如何在多线程环境中正确实现单例模式,避免线程安全问题。
摘要由CSDN通过智能技术生成

8.线程安全

什么是线程安全? 最大的大白话,你的代码一个线程执行挺好,一上多线程测试就玩儿完(结果不是你所想要的),这就是线程不安全。反之为线程安全。首先,我们把第二章讲单态模式或单例模式(Singleton)的例子再搬过来一次,但这里把一些无关的打印和注释去掉了:
例:1.8.1

class Photoshop {
    private Photoshop() {
    }
    private static Photoshop photoshop = null;// 这个值独立于任何对象存在,实例化任何对象之前,这个成员就有可能有值。
    public static Photoshop getInstanceQixy() {
        if (photoshop == null) {
            photoshop = new Photoshop();
        }
        return photoshop;
    }

public class Test {
    public static void main(String[] args) {
        Photoshop photoshopI1 = Photoshop.getInstanceQixy();
        Photoshop photoshopI2 = Photoshop.getInstanceQixy();
        System.out.println(photoshopI1+"  "+photoshopI2);
    }
}

更多请见:http://www.mark-to-win.com/tutorial/java_6_WhatIsThreadSafe.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值