首页 > 其他分享 >面试常用代码

面试常用代码

时间:2023-08-17 16:34:46浏览次数:91  
标签:常用 currentThread Thread get 代码 System 面试 Singleton out

死锁

public class DeadLockDemo {
    private static Object resource1 = new Object();//资源 1
    private static Object resource2 = new Object();//资源 2

    public static void main(String[] args) {
        new Thread(() -> {
            synchronized (resource1) {
                System.out.println(Thread.currentThread() + "get resource1");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(Thread.currentThread() + "waiting get resource2");
                synchronized (resource2) {
                    System.out.println(Thread.currentThread() + "get resource2");
                }
            }
        }, "线程 1").start();

        new Thread(() -> {
            synchronized (resource2) {
                System.out.println(Thread.currentThread() + "get resource2");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(Thread.currentThread() + "waiting get resource1");
                synchronized (resource1) {
                    System.out.println(Thread.currentThread() + "get resource1");
                }
            }
        }, "线程 2").start();
    }
}

双重校验锁单例

public class Singleton {

    private volatile static Singleton uniqueInstance;

    private Singleton() {
    }

    public  static Singleton getUniqueInstance() {
       //先判断对象是否已经实例过,没有实例化过才进入加锁代码
        if (uniqueInstance == null) {
            //类对象加锁
            synchronized (Singleton.class) {
                if (uniqueInstance == null) {
                    uniqueInstance = new Singleton();
                }
            }
        }
        return uniqueInstance;
    }
}

 

标签:常用,currentThread,Thread,get,代码,System,面试,Singleton,out
From: https://www.cnblogs.com/naixin007/p/17638032.html

相关文章

  • 如何阅读并学习 MegEngine 的代码
    旷视开源的深度学习框架 MegEngine,MegEngine是一个快速、可拓展、易于使用且支持自动求导的深度学习框架。以最新的release版本release-1.13.0为例介绍一下MegEngine的代码结构以及如何学习MegEngine的代码。1.编译对于学习大型项目,我们建议源码编译项目而不是直接安装......
  • vue面试题1
    VUE11.那你能讲一讲MVVM吗?MVVM是Model-View-ViewModel缩写,也就是把MVC中的Controller演变成ViewModel。Model层代表数据模型,View代表UI组件,ViewModel是View和Model层的桥梁,数据会绑定到viewModel层并自动将数据渲染到页面中,视图变化的时候会通知viewModel层更新数据。2.简单......
  • gin框架常用模块
    一、gin框架常用模块1、将收到的httppost请求中body参数转换为对象funcUploadConfig(c*gin.Context){ p:=mconfig.CoursewareParam{} iferr:=c.ShouldBindJSON(&p);err!=nil{ log.Error("发布课件配置body解析报错,错误信息:",err) comm.SetResultMsg(c,1,s......
  • git本地代码推送到远程仓库的指定分支并进行强制覆盖
     1、关联远程仓库:如果还没有关联远程仓库,可以使用以下命令将本地仓库关联到远程仓库:gitremoteaddorigin<远程仓库URL>其中,origin是远程仓库的别名,你可以自行命名2、切换到要推送的分支:确保你在本地切换到了要推送的分支。如果没有该分支,可以使用以下命令创建并切换......
  • 常用正则
    1.密码校验规则【要求】:强密码正则的要求是只能由数字,字母组成,不能有特殊符号,并且长度限制在8-10位【正则表达式】:/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$/1.至少8-16个字符,至少1个大写字母,1个小写字母和1个数字,其他可以是任意字符:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8......
  • git常用命令
    gitclonexxx(地址)//拉取代码gitcheckout-b分支名=》gitpush--set-upstreamorigin分支名(关联到远程仓库)//创建本地分支gitrebase-i主分支//合并主分支代码到自己的分支gitremoteupdateorigin--prune--更新远程分支到本地gitstatus//查看状态   gi......
  • JavaScript面试题3
    JavaScript31.移动端上什么是点击穿透?点击穿透有3种:点击穿透问题:点击蒙层(mask)上的关闭按钮,蒙层消失后发现触发了按钮下面元素的click事件跨页面点击穿透问题:如果按钮下面恰好是一个有.href属性的a标签,那么.页面就会发生跳转另一种跨页面点击穿透问题:这次没有mask了,直接......
  • 3分钟学会Python 常用配置文件处理
    一:配置文件1.什么是配置文件配置文件是为程序配置参数和初始设置的文件。一般为文本文件,以ini,conf,cnf,cfg,yaml等作为后缀名。例如mysql的配置文件my.cnf内容如下:[mysqld]#Onlyallowconnectionsfromlocalhostbind-address=0.0.0.0mysqlx-bind-address=127.0.0.......
  • 【代码快】-验证码-绘制倒图片显示
    整理代码块代码块整理后存储,供后期使用SubshowRandomStr()str=String.Empty'生成随机数字符串DimrAsRandom=NewRandom()Fori=0To4str+=r.Next(0,9).ToStringNext'画字符串DimbmpAsBitmap=NewBitmap(120,......
  • 某公司笔试题 - 删除字符串中出现次数最少的字符(附python代码)
    #实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数最少的字符都删除。输入删除这些单词后的字符串,字符串中其它字符保持原来的顺序。#数据范围:输入的字符串长度满足1<=n<=20,保证输入的字符串中仅出现小写字母str1=input().lower()dic={}if1<......