美文网首页
多线程4synchronized保证线程安全的原理

多线程4synchronized保证线程安全的原理

作者: RyanHugo | 来源:发表于2020-03-13 21:02 被阅读0次

代码

补充https://www.cnblogs.com/skywang12345/p/3479202.html

public class Sequence {

    private int value;
    
    
//  synchronized在普通方法,内置锁就是当前实例
    public synchronized int getNext(){
        return value++;
    }
//  synchronized修饰静态方法,内置锁是当前的Class字节码对象
    public static synchronized int getPrevious() {
        return 0;
        
    }
    
    
    public static void main(String[] args) {
        
        
        synchronized (Sequence.class) {
            
        }
        
        
        Sequence s = new Sequence();
        
        new Thread(new Runnable() {
            
            @Override
            public void run() {
                // TODO Auto-generated method stub
                System.out.println(Thread.currentThread().getName()+"  "+s.getNext());
                while(true){
                    System.out.println(Thread.currentThread().getName()+"  "+s.getNext());
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        }).start();
    
        
        new Thread(new Runnable() {
                    
                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        while(true){
                            System.out.println(Thread.currentThread().getName()+"  "+s.getNext());
                            try {
                                Thread.sleep(100);
                            } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                    }
                }).start();
    
    
    }
    
}

相关文章

  • 多线程4synchronized保证线程安全的原理

    代码 补充https://www.cnblogs.com/skywang12345/p/3479202.html

  • ConcurrentHashMap

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

  • Java多线程

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

  • IOS多线程安全(线程锁)

    线程安全 线程的不安全是由于多线程访问和修改共享资源而引起的不可预测的结果。ios多线程开发中为保证线程的安全常用...

  • java并发关键字 Synchronized关键字

    在多线程环境下为了保证数据安全,需要用到互斥锁保证多线程对数据操作的安全性。Synchronized关键字可以修饰...

  • HashMap与HashTable之间的区别

    1.HashMap线程不安全、HashTable线程安全; 2.多线程的情况下使用HashTable能保证数据安全...

  • iOS 各种锁

    概述 iOS多线程开发,会出现数据竞争,因此需要锁来保证线程安全。 线程安全 当一个线程访问资源时,需要保证其它的...

  • 正确使用多线程同步锁@synchronized()

    在上篇多线程安全的文章中,我曾推荐过大家使用@synchronized来使得代码获得原子性,从而保证多线程安全。这...

  • Python操作redis的封装

    下面是redis的封装,使用多线程的话,保证线程安全就把下面的线程锁打开

  • 2021-08-20

    用什么Map可以保证线程安全,为什么?ConcurrentHashMap为什么能保证线程安全?1.7和1.8原理有...

网友评论

      本文标题:多线程4synchronized保证线程安全的原理

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