面试算法变成题-必须掌握

news2024/9/30 5:34:45

一  多线程

1.1 死锁 

1.1.1 死锁的案例

package com.ljf.day0814;

/**
 * @ClassName: DeadLock
 * @Description: TODO
 * @Author: admin
 * @Date: 2023/08/21 09:31:16 
 * @Version: V1.0
 **/
public class DeadLock {
    public static void main(String[] args) {
        Object objA=new  Object();
        Object objB=new Object();
        new Thread(new Runnable() {
            @Override
            public void run() {
                synchronized (objA){
                    System.out.println("我是线程objA:"+Thread.currentThread().getName());
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    synchronized (objB){
                        System.out.println("我是线程objA:在等待获取objb"+Thread.currentThread().getName());
                    }
                }
            }
        }).start();
        new Thread(new Runnable() {
            @Override
            public void run() {
                synchronized (objB){
                    System.out.println("我是线程objB:"+Thread.currentThread().getName());
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    synchronized (objA){
                        System.out.println("我是线程objB:在等待获取objA"+Thread.currentThread().getName());
                    }
                }
            }
        }).start();
    }
}

1.1.2 验证死锁

分析死锁

 

 

1.2 生产消费

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

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

相关文章

Delphi 安卓App自动升级

Androidapi.JNI.Support引用这个单元 procedure _InstallApk(Apk: string); varLFile: JFile;LIntent: JIntent; beginLFile : TJFile.JavaClass.init(StringToJString(ExtractFilePath(Apk)), StringToJstring(ExtractFileName(Apk)));LIntent : TJIntent.Create;LIntent.set…

【Vue】全家桶之Axios

文章目录 概述axios特点安装关于 ajax、fetch、axiosAxios APIAxios 实例请求配置响应结构默认配置拦截器错误处理取消请求取消请求请求体编码 概述 Axios是基于promise的网络请求库,可以在nodejs和浏览器中运行,是isomorphic的,意思就是同一…

fastgpt构建镜像

1.把client目录复制到服务器 .next和node_modules文件夹不用上传到服务器 在服务器目录运行 docker build -t fastgpt:1.0.3 . 构建服务 再运行 docker ps 就可以看到容器了

【从零学习python 】58.Python中的自定义异常及引发异常的方法

文章目录 自定义异常补充文件备份制作文件的备份 进阶案例 自定义异常 你可以用 raise 语句来引发一个异常。异常/错误对象必须有一个名字,且它们应是 Error 或 Exception 类的子类。 下面是一个引发异常的例子: class ShortInputException(Exception):自定义的异…

触摸屏与PLC之间 EtherNet/IP无线以太网通信

在实际系统中,同一个车间里分布多台PLC,用触摸屏集中控制。通常所有设备距离在几十米到上百米不等。在有通讯需求的时候,如果布线的话,工程量较大耽误工期,这种情况下比较适合采用无线通信方式。 本方案以MCGS触摸屏和…

Linux面试笔试题(6)

91、6块300G的硬盘做raid5,新的设备容量是多大(C) A 900G B 1800G C 1500G D 300G 6300G−300G 1500G 由于一块硬盘用于奇偶校验,所以设备容量将是1500G. Raid 5是一种磁盘阵列,将数据分散到多个硬盘上以提高性能和可…

leetcode刷题之1089: 复写零

题目 解题思路: 2)处理边界情况 这种情况越界会发生报错 处理边界情况 3) 双指针法 "从后向前" 完成复写操作 cur指向 最后一个复写的数 , 用cur指向的元素复写dest指向元素, 随后cur, dest 均向前移动一位 此时cur指向零元素, 需要复写两位, 复写两个元素的…

【Linux】Centos安装 mariadb 并授权远程登陆

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

YOLO入门必备的哪些知识点?

YOLO(You Only Look Once)是一种基于深度学习的目标检测算法,它具有快速、准确的特点,在计算机视觉领域广受关注。 如果你想入门YOLO,以下是一些必备的知识点: 深度学习基础知识:了解深度学习…

紫外线辐射导致了地球上最大规模的灭绝

为了找到二叠纪末大规模灭绝期间紫外线辐射增强的第一个直接证据,研究人员转向花粉粒中保存的化学证据。 研究人员收集了二叠纪末灭绝事件之前、期间和之后形成的岩石样本。图片来源:刘峰,南京地质古生物研究所 大约 2.52 亿年前,…

常用消息中间件介绍

RocketMQ 阿里开源,阿里参照kafka设计的,Java实现 能够保证严格的消息顺序 提供针对消息的过滤功能 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅机制 亿级消息堆积能力 RabbitMQ Erlang实现,非常重量级,更适…

Streamlit项目:基于讯飞星火认知大模型开发Web智能对话应用

文章目录 1 前言2 API获取3 官方文档的调用代码4 Streamlit 网页的搭建4.1 代码及效果展示4.2 Streamlit相关知识点 5 结语 1 前言 科大讯飞公司于2023年8月15日发布了讯飞认知大模型V2.0,这是一款集跨领域知识和语言理解能力于一体的新一代认知智能大模型。前日&a…

AIGC音视频工具分析和未来创新机会思考

编者按:相较于前两年,2023年音视频行业的使用量增长缓慢,整个音视频行业遇到瓶颈。音视频的行业从业者面临着相互竞争、不得不“卷”的状态。我们需要进行怎样的创新,才能从这种“卷”的状态中脱离出来?LiveVideoStack…

手摸手带你实现一个开箱即用的Node邮件推送服务

目录 ​编辑 前言 准备工作 邮箱配置 代码实现 服务部署 使用效果 题外话 写在最后 相关代码: 前言 由于邮箱账号和手机号的唯一性,通常实现验证码的校验时比较常用的两种方式是手机短信推送和邮箱推送,此外,邮件推送服…

部署问题集合(十九)linux设置Tomcat、Docker,以及使用脚本开机自启(亲测)

前言 因为不想每次启动虚拟机都要手动启动一遍这些东西,所以想要设置成开机自启的状态 设置Tomcat开机自启 创建service文件 vi /etc/systemd/system/tomcat.service添加如下内容,注意修改启动脚本和关闭脚本的地址 [Unit] DescriptionTomcat9068 A…

Nexus(Maven管理器)下载和安装

我们以 Nexus 2.x 为例,演示 Nexus 的安装过程。 官方下载地址 1. 进入 Nexus 2.x 下载页面,根据本机操作系统,选择对应的版本进行下载,如下图所示。 2. 将下载 Nexus 安装包解压到本地磁盘,可获得 nexus-2.14.20-0…

Java字符串

一、所在位置 字符串常量池: 存放字符串的容器 那字符串常量池存在哪呢?根据JDK的版本不同,字符串常量池存放的位置不同。 jdk1.6之前字符串常量池在方法区(想法)中的永久代(具体实现)(JVM:新生代、老生代、永久代(永…

三、MySQL 数据库安装集

一、CentOS—YUM 1. MySQL—卸载 # 1、查看存在的MySQL。 rpm -qa | grep -i mysql rpm -qa | grep mysql# 2、删除存在的MySQL。 rpm -e –-nodeps 包名# 3、查找存在的MySQL目录。 find / -name mysql# 4、删除存在的MySQL目录。 rm -rf 目录# 5、删除存在的MySQL配置文件。…

【西安、成都】山洪预警模拟与洪水危险性评价技术及2023年典型地区洪水淹没及损失分析复盘

气候变化背景下,极端天气导致的洪水事件将更加频发。快速城市化对流域下垫面的改变,及人类活动向洪泛区的扩张。二者共同使得全世界多数人类活动高度聚集区的洪水风险增加。洪水淹没危险性(各种年遇型洪水淹没)是洪水损失评估、风…

mathematica线性代数基础和希腊字母输入

在公式推导的过程中最常使用的就是线性代数: mathematica提供了线性代数的计算模块,不过需要熟悉一下语法,最好的方式就是看文档。 文档的链接 在本地的帮助搜索栏输入howto/DoLinearAlgebra,或者在网页输入链接 How to| 进行线…