并发编程-高级程序员必备
文章平均质量分 57
高级程序员进阶内功学习
liuyunshengsir
全栈工程师
展开
-
jstack 的使用《jvm常用命令》
介绍jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。命令格式root@cv-console-rds-68784cdf9c-zk4d8:/# jstack -helpUsage: jstack原创 2022-05-06 11:24:51 · 886 阅读 · 0 评论 -
synchronized 作用范围《并发编程》
在 Java 中,可以使用 synchronized 关键字来标记一个方法或者代码块,当某个线程调用该对象的synchronized方法或者访问synchronized代码块时,这个线程便获得了该对象的锁,其他线程暂时无法访问这个方法,只有等待这个方法执行完毕或者代码块执行完毕,这个线程才会释放该对象的锁,其他线程才能执行这个方法或者代码块。它修饰的对象有以下几种:修饰代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;修饰方法,被修饰原创 2022-04-21 15:15:02 · 1216 阅读 · 0 评论 -
CAS 原理【并发编程】
1.CASCAS 被认为是一种乐观锁,有乐观锁,相对应的是悲观锁。在上述示例中,我们使用了 synchronized,如果在线程竞争压力大的情况下,synchronized 内部会升级为重量级锁,此时仅能有一个线程进入代码块执行,如果这把锁始终不能释放,其他线程会一直阻塞等待下去。此时,可以认为是悲观锁。悲观锁会因线程一直阻塞导致系统上下文切换,系统的性能开销大。那么,我们可以用乐观锁来解决,所谓的乐观锁,其实就是一种思想。乐观锁,会以一种更加乐观的态度对待事情,认为自己可以操作成功。当多个线程操原创 2022-04-20 20:31:18 · 202 阅读 · 0 评论 -
docker nginx https
docker run --name mynginx -d -p 82:80 nginxdocker run --name mynginx -d -p 82:80 -p 443:443 -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/ssl:/etc/nginx/cert -d nginxdocker run --name mynginx -d -p 443:443 -v /home/nginx/nginx.co.原创 2021-12-08 16:11:15 · 1862 阅读 · 0 评论 -
Spring中bean的生命周期
找工作的时候有些人会被问道Spring中Bean的生命周期,其实也就是考察一下对Spring是否熟悉,工作中很少用到其中的内容,那我们简单看一下。1.生命周期Spring上下文中的Bean也类似,如下实例化一个Bean--也就是我们常说的new;按照Spring上下文对实例化的Bean进行配置--也就是IOC注入;如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法,此处传递的就是Spring配置文件中Bean的id值原创 2021-09-26 14:04:36 · 76 阅读 · 0 评论 -
1.Java 内存区域与内存溢出异常---《深入理解JVM》
1.运行时数据区域1.1 程序计数器内存空间小,线程私有。字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行指令的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成如果线程正在执行一个 Java 方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是 Native 方法,这个计数器的值则为 (Undefined)。此内存区域是唯...原创 2021-09-25 11:34:08 · 57 阅读 · 0 评论 -
线程的生命周期《并发编程》
生命周期图例Thread的内部类明确了状态原创 2021-09-18 16:13:59 · 87 阅读 · 0 评论 -
Callable、Future和FutureTask区别实践《并发编程》
本专栏针对实现原理从下图可以看出Runnable 和Callable都是函数式接口(函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。),一般使用都结合线程池进行使用。异步线程的实现(非线池方式)package com.lys.thread;import java.util.concurrent.Callable;import java.util.concurrent.FutureTask;/** * @Auther:原创 2021-09-18 15:19:50 · 296 阅读 · 0 评论