并发(读写锁,线程池)03 详细讲解

news2024/9/21 0:43:02

读写锁

独占锁:一次只能被一个线程占有

共享锁。多个线程可以同时占有

class Apple{
    public static void main(String[] args) {
       Mycache mycache=new Mycache();

        for (int i = 0; i <5 ; i++) {
            final int temp=i;
            new Thread(()->{
                mycache.put(temp+"",temp);
            }).start();

        }


        for (int i = 0; i <5 ; i++) {
            final int temp=i;
            new Thread(()->{
                mycache.get(temp+"");
            }).start();

        }
    }

}

/*自定义缓存*/
class Mycache{
    private  volatile Map<String ,Object> map=new HashMap<>();
//读写所

    private ReentrantReadWriteLock lock=new ReentrantReadWriteLock();
    //存 取的时候  只希望同时只有一个线程写入
    public void put(String key,Object value){
        lock.writeLock().lock();
        System.out.println(Thread.currentThread().getName()+"写入"+key);
        map.put(key,value);
        System.out.println(Thread.currentThread().getName()+"已写入");
        lock.writeLock().unlock();

    }
//可以有多个读出
    public void get(String key){
        lock.readLock().lock();
        System.out.println(Thread.currentThread().getName()+"读入"+key);
        map.get(key);
        System.out.println(Thread.currentThread().getName()+"已读入");
        lock.readLock().unlock();

    }
}

线程池

程序的运行本质:占用系统的资源!优化资源的使用!=>池化技术

线程池、连接池、内存池、对象池//

程序的运行本质:占用系统的资源!优化资源的使用

池化技术:线程池、连接池、内存池、对象池

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/948349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

北京985学校,交叉学科考英一数三408

北京师范大学(B) 考研难度&#xff08;☆☆☆&#xff09; 内容&#xff1a;23考情概况&#xff08;拟录取和复试分析&#xff09;、院校概况、23专业目录、23复试详情、各专业考情分析、各科目考情分析。 正文1096字&#xff0c;预计阅读&#xff1a;3分钟 2023考情概况 北…

ChatGPT⼊门到精通(5):ChatGPT 和Claude区别

⼀、Claude介绍 Claude是Anthropic开发的⼀款⼈⼯智能助⼿。 官⽅⽹站&#xff1a; ⼆、Claude能做什么 它可以通过⾃然语⾔与您进⾏交互,理解您的问题并作出回复。Claude的主要功能包括: 1、问答功能 Claude可以解答⼴泛的常识问题与知识问题。⽆论是历史上的某个事件,理科…

飞天使-python的字符串转义字符元组字典等

文章目录 基础语法数据类型python的字符串运算符输入和输出 数据结构列表与元组字典与集合 参考文档 基础语法 数据类型 数值型 &#xff0c;整数 浮点型 布尔型&#xff0c; 真假&#xff0c; 假范围 字符型 类型转换python的字符串 了解转义字符一些基本的运算 \ 比如一行…

聊聊大规模敏捷框架和测试启发

这是鼎叔的第七十三篇原创文章。行业大牛和刚毕业的小白&#xff0c;都可以进来聊聊。 欢迎关注本公众号《敏捷测试转型》&#xff0c;星标收藏&#xff0c;大量原创思考文章陆续推出。 之前的敏捷实践介绍文章&#xff0c;都是以单个团队&#xff08;独立交付特性的敏捷团队…

R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享...

全文链接&#xff1a;https://tecdat.cn/?p33514 综合社会调查&#xff08;GSS&#xff09;是由国家舆论研究中心开展的一项观察性研究。自 1972 年以来&#xff0c;GSS 一直通过收集当代社会的数据来监测社会学和态度趋势。其目的是解释态度、行为和属性的趋势和常量。从 197…

口碑最好的洗地机排名 洗地机哪个牌子性价比高

口碑最好的洗地机排名 洗地机哪个牌子性价比高 洗地机&#xff0c;作为现代家庭和商业环境中必备的清洁设备&#xff0c;既方便又高效。不过&#xff0c;面对市场上众多的洗地机品牌&#xff0c;我们该如何选择呢&#xff1f;毫无疑问&#xff0c;我们都希望能够找到一款口碑最…

vue中使用window.open打开assets文件夹下的pdf文件

需求&#xff1a;系统有个操作手册&#xff0c;点击会在浏览器新开个窗口并打开pdf文件。这个pdf文件存储在本地assets文件夹中。 文件结构&#xff1a; 注&#xff1a;直接使用window.open(文件路径)不能打开&#xff0c;需要在vue.config.js中配置所需文件 引入图中红框中的…

AMD 锐龙 8000系 APU 将补完其产品线,推出 12C24T16CU 和 16C32T40CU

我们大家都知道一直以来&#xff0c;AMD 的 APU 只到 R7&#xff0c;也就是 R7-x700G 和 r7-x800H。虽然也有 R9-x900HX&#xff0c;但它毕竟是 x800H 硬超上去的&#xff0c;核心数完全一样&#xff0c;并不能叫做真正的 R9。 究其原因&#xff0c;AMD 的 APU 是移动端优先的…

如何将Word中的中文数字转化为阿拉伯数字

例如这种情况&#xff1a; 需要把这些汉字数字改为阿拉伯数字。 步骤1&#xff1a;在任意位置输入“第章”&#xff0c;然后把光标放到“第”和“章”的中间&#xff0c;然后ctrlf9插入域&#xff0c;在域里面输入 autonum&#xff0c;然后按altf9 显示域值。 按下altF9后 第 …

优化案例5:视图目标列改写优化

优化案例5&#xff1a;视图目标列改写优化 1. 问题描述2. 分析过程2.1 目标SQL2.2 解决思路1&#xff09;效率低的执行计划2&#xff09;视图过滤性3&#xff09;查看已有索引定义 2.3 视图改写2.4 增添复合索引 3. 优化总结 DM技术交流QQ群&#xff1a;940124259 1. 问题描述…

Typora 远程代码执行漏洞(CVE-2023-2317)

Typora 远程代码执行漏洞 【CVE-2023-2317】 一、产品介绍二、影响版本三、漏洞复现四、深入复现1.启动teamserver服务2.cs生成exe马子3.开启http.server4.导入组合拳到md文件(1)下载马子的第一个命令&#xff0c;自行base64解密修改路径(2)执行马子的第二条代码&#xff0c;注…

【高级程序设计语言C++】右值引用

1. 左值引用和右值引用2. 修改的右值3. 左值引用和右值引用的比较3.1. 左值引用总结3.2. 右值引用总结 4. 右值引用使用场景和意义5. 完美转发 1. 左值引用和右值引用 什么是左值&#xff1f;什么是左值引用&#xff1f; 左值是一个表示数据的表达式(如变量名或解引用的指针)…

计算机网络 概述部分

目录 计算机网络在信息时代的作用 计算机网络的重要特征 网络&#xff0c;internet,Internet的区别 局域网 广域网的区别 网络协议的分层 计算机网络在信息时代的作用 计算机网络的重要特征 连通性&#xff1a;彼此联通&#xff0c;交换信息 共享性&#xff1a;信息共享…

精准运营,智能决策!解锁天翼物联水利水务感知云

面向智慧水利/水务数字化转型需求&#xff0c;天翼物联基于感知云平台创新能力&#xff0c;提供涵盖水利水务泛协议接入、感知云水利/水务平台、水利/水务感知数据治理、数据看板在内的水利水务感知云服务&#xff0c;构建水利水务感知神经系统新型数字化底座&#xff0c;实现智…

WebGpu VS WebGL

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建3D应用场景 WEBGPU VS. WEBGL 粗略地概述一下WebGPU与WebGL的不同之处是很有用的。在不涉及太多复杂的技术细节的情况下&#xff0c;两者的整体设计大致如下&#xff1a; WebGL和OpenGL一样&#xff0c;涉及许多单独的函数调…

Docker基础入门:容器数据卷与Dockerfile构建镜像(发布)

Docker基础入门&#xff1a;容器数据卷与Dockerfile构建镜像&#xff08;发布&#xff09; 一、docker容器数据卷1.1、使用docker容器数据卷1.2、具名挂载、匿名挂载1.3、如何确定是具名挂载还是匿名挂载 二、使用dockerfile2.1 初识Dockerfile2.2 Dockerfile构建过程2.3 Docke…

Nacos 未授权访问(CVE-2021-29441)

Nacos 未授权访问(CVE-2021-29441) Nacos是阿里巴巴推出的一个新的开源项目。它是一个动态的服务发现、配置管理和服务管理平台&#xff0c;可以更轻松地构建云原生应用程序。致力于帮助发现、配置和管理微服务。Nacos 提供了一套简单易用的功能集&#xff0c;可以快速实现动态…

火山引擎 DataLeap 助你拥有 Notebook 交互式的开发体验

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 Notebook 是一种支持 REPL 模式的开发环境。所谓「REPL」&#xff0c;即「读取-求值-输出」循环&#xff1a;输入一段代码&#xff0c;立刻得到相应的结果&#xff…

SAP_ABAP_接口技术_PI实践总结

SAP ABAP顾问能力模型梳理_企业数字化建设者的博客-CSDN博客SAP Abap顾问能力模型https://blog.csdn.net/java_zhong1990/article/details/132469977一、背景说明 1.1 案例介绍 1.1.1 实现OA系统 --> PI系统 --> SAP系统的过程 二、实现步骤 1.2 PI中间件的实现过程 …

LabVIEW | 串口基础【自学】

转载 B站   up&#xff1a;不烧板子 地址&#xff1a;https://www.bilibili.com/read/cv9435378 原博图片不清楚&#xff0c;自己重新跟学截图自留&#xff0c;侵删 文章目录 一、串口基础1.串口发送&#xff08;1&#xff09;简单发送&#xff08;2&#xff09;循环发送&…