java数组在多线程中安全问题,HashMap是不安全的,Hashtable安全(但每次都加锁,效率低),ConcurrentHashMap完美

发布时间:2024年01月19日
package com.controller;

import com.myThread.AdminThread;
import com.myThread.MyCallable;
import com.myThread.MyRunnable;
import org.springframework.web.bind.annotation.*;

import java.util.concurrent.*;
//上面引入*,所以这个可以注销
//import java.util.concurrent.ConcurrentHashMap;

@RestController
@CrossOrigin
@RequestMapping("/admin")
public class AdminController{
    @GetMapping("/{id}")
    public long findById(@PathVariable Long id) throws InterruptedException {
        ConcurrentHashMap<String,String> maps = new ConcurrentHashMap<>();
        Thread ti = new Thread(() ->{
            for (int i = 0; i < 10; i++) {
                maps.put(i+"",i+"laila");
            }
        });
        ti.start();
        //加一下延迟,等线程把数据写入,不然是null
        Thread.sleep(1000);

        for (int i = 0; i < 10; i++) {
            System.out.print(maps.get(i+"")+"\n");
        }
        return id;
    }
}

在这里插入图片描述

文章来源:https://blog.csdn.net/qq_34631220/article/details/135707037
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。