美文网首页
多线程线程安全

多线程线程安全

作者: 迷糊小生 | 来源:发表于2019-03-23 13:39 被阅读0次

非线程安全主要指多个线程对同一个对象中的同一个实例变量进行操作时会出现值被更改、值不同步的情况,进而影响程序的执行流程。


/**
 * 线程不安全
 * @author xml
 *
 */
public class NoThreadSafe {

    private static String userName;
    
    private static String passWard;
    
    /**
     * 模拟Selvet
     */
    public static void doPost(String userNameRef,String passWardRef) {
        try {
            userName = userNameRef;
            if(userName.equals("aaa")) {
                Thread.sleep(1000);
            }
            passWard = passWardRef;
            System.out.println("userName:" + userName + "----" + "passWard:" + passWard);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    
}

public class ThreadTestA extends Thread{

    @Override
    public void run() {
        NoThreadSafe.doPost("aaa", "aaa");
    }
}

public class ThreadTestB extends Thread{

    @Override
    public void run() {
        NoThreadSafe.doPost("bbb", "bbb");
    }
}

public class Test {
    public static void main(String[] args) {
        ThreadTestA aaa = new ThreadTestA();
        aaa.start();
        ThreadTestB bbb = new ThreadTestB();
        bbb.start();
    }
}
image.png image.png

由于userName,passWard都属于类变量,因此当两个线程同时启动后其值会发生改变,由此造成了结果的错乱。

相关文章

  • 线程安全知多少

    1. 如何定义线程安全 线程安全,拆开来看: 线程:指多线程的应用场景下。 安全:指数据安全。 多线程就不用过多介...

  • 2018-05-08

    多线程 初级概念与传参 join deatch 原子变量 互斥锁 与 线程安全 线程安全 多线程访问冲突 冲突...

  • iOS关于property中的atomic和nonatomic

    首先这两个属性特质是为了处理多线程安全问题,那么什么是多线程安全,多线程安全就是多个线程访问同一段代码、指针区域、...

  • ConcurrentHashMap

    总结 HashMap在多线程中不安全,java提供了线程安全的ConcurrentHashMap 类,保证在多线程...

  • HashMap相关

    HashMap是数组+链表 1.HashMap不是线程安全,为什么不是线程安全的呢? 多线程put,多线程reha...

  • 几个小问题

    1、FMDB与多线程 SQLITE默认的线程模式是串行模式, 是线程安全的FMDatabase多线程不安全, 单个...

  • iOS多线程到底不安全在哪里?

    iOS多线程到底不安全在哪里? iOS多线程到底不安全在哪里?

  • 多线程学习笔记

    多线程出现目的 如何使用多线程 线程状态(6种) 线程开启/停止 线程安全VolilateSychronized机...

  • 后端架构师技术图谱(三)-并发、锁、设计模式(二)

    并发 多线程 《40个Java多线程问题总结》 线程安全 《Java并发编程——线程安全及解决机制简介》 一致性、...

  • Java多线程

    目录 什么是多线程?引入多线程的意义何在? 并行和并发 线程安全 线程状态 如何保证线程安全? 创建线程的三种方法...

网友评论

      本文标题:多线程线程安全

      本文链接:https://www.haomeiwen.com/subject/pdijvqtx.html