美文网首页
java多线程安全性问题

java多线程安全性问题

作者: o我不是程序员o | 来源:发表于2018-09-12 20:09 被阅读0次

线程安全性的概念

当多个线程访问某个类时,不管运行时环境才去何种调用方式,这些线程如何交替执行,并且在主调代码中不需要做额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。

对象锁和类锁的概念

对象锁:是用在对象的实例方法上,或者是对一个对象进行加锁。
类锁:是对类里面的静态方法加锁,或者是用在一个类的.class对象上。

死锁的示例代码

public class LockDeath{
    private static Object ob1 = new Object();
    private static Object ob2 = new Object();

    public static void main(String []args) {
        Thread th1 = new Thread(new Runnable() {
            @Override
            public void run() {
                synchronized (ob1) {
                    System.out.println("ob1 lock");
                    try {
                        Thread.sleep(1000);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }

                    synchronized (ob2) {
                        System.out.println("ob2 lock");
                    }
                }
            }
        });

        Thread th2 = new Thread(new Runnable() {
            @Override
            public void run() {
                synchronized (ob2) {
                    System.out.println("ob2 lock");
                    try {
                        Thread.sleep(1000);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    synchronized (ob1) {
                        System.out.println("ob1 lock");
                    }
                }
            }
        });

        th1.start();
        th2.start();
    }
}

相关文章

  • 多线程安全性和Java中的锁

    Java是天生的并发语言。多线程在带来更高效率的同时,又带来了数据安全性问题。一般我们将多线程的数据安全性问题分为...

  • ThreadLocal实现原理揭秘

    ThreadLocal是什么?对java多线程有了解的人都清楚,在多个线程程序中,会出现线程安全性问题,即多线程是...

  • 02.线程安全性问题

    [TOC] 安全性问题概述 什么是安全性问题 多线程情况下的安全问题,是指数据的一致性问题,在多线程环境下,多个线...

  • java多线程安全性问题

    线程安全性的概念 当多个线程访问某个类时,不管运行时环境才去何种调用方式,这些线程如何交替执行,并且在主调代码中不...

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

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

  • Notes: Java下的线程安全容器小小整理

    Java下的线程安全容器 在编写多线程的Java程序时,难免会使用到各种各样的容器。Java本身提供了许多线程安全...

  • ConcurrentHashMap

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

  • 多线程juc锁

    java_basic 1 线程安全 在Java多线程编程当中,实现线程安全: 内部锁(Synchronized...

  • volatile如何保证有序性?内存屏障都不知道怎么拿offer

    在多线程的世界里,一共有三个问题:原子性问题、可见性问题、有序性问题。整个java并发体系也是围绕着如何解决这三个...

  • java_多线程

    java_多线程 线程创建方式;join用法; sleep和wait区别; 线程安全和不安全的java集合; St...

网友评论

      本文标题:java多线程安全性问题

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