自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 多线程基础篇-09

文章目录`第九章 程序死锁文章目录文章目录一、程序死锁二、程序死锁举例三、死锁诊断一、程序死锁1、交叉锁可导致程序出现死锁线程A持有R1的锁等待获取R2的锁,线程B持有R2的锁等待获取R1的锁,这种情况最容易导致死锁问题。2、内存不足当并发请求系统可用内存时,如果此时系统内存不足,则可能会出现死锁的情况。举个例子,两个线程T1和T2,执行某个任务,其中T1已经获取了10MB内存,T2获取了20MB内存,如果每个线程的执行单元都需要30MB的内存,但是剩余可用的内存刚好是20MB,那么两个

2022-05-15 22:28:38 252

原创 多线程基础篇-08

文章目录第八章 synchronized文章目录文章目录一、Synchronized关键字的用法1.同步方法2.同步代码块3.使用synchronize需要注意的问题二、This monitor和class Monitor的详细介绍1.This monitor2.Class monitor一、Synchronized关键字的用法Synchronized可以用于对代码块或方法进行修饰,而不能够用于对class以及变量进行修饰。1.同步方法 同步方法的语法非常就简单,即[default|

2022-05-15 21:21:55 160

原创 多线程基础篇-11

文章目录第一章 wait和sleep的区别和联系文章目录文章目录一、主要区别二、相似之处一、主要区别1、wait是object的方法,而sleep是thread特有的方法2、wait方法的执行必须在同步方法中进行,而sleep则不需要。3、线程在同步方法中执行sleep方法时,并不会释放monitor的锁,而wait方法会释放monitor的锁。代码演示:public class DifferenceOfWaitAndSleep {private final static Object

2022-05-14 23:13:00 84

原创 多线程基础篇-07

文章目录第一章 数据同步的引入与Synchronized文章目录文章目录一、互斥锁二、关于Synchronized三、锁范围四、可重入性五、公平性五、不可中断性一、互斥锁为了保证数据同步,那么就必须要引入锁来确保。互斥锁是常用的同步手段,在并发过程中,当多条线程对同一个共享数据竞争时,它能保证共享数据同一时刻只能被一条线程使用,而其他线程只能等到锁释放后才能重新竞争。对于java开发人员,我们最熟悉的肯定就是用Synchronized关键词来完成锁功能。在涉及到多线程并发时,针对某些变量,你应该

2022-05-12 22:58:55 194

原创 多线程基础篇-06

文章目录第六章 采用优雅的方式结束线程生命周期优雅停止线程有三种方式适用于不同的场景。一、增加开关标记这种方式适用于有机会判断标记位的情况。案例如下:public class ThreadCloseGraceful {private static class Worker extends Thread { private volatile boolean start = true; @Override public void run() { while

2022-05-11 22:55:55 46

原创 多线程基础篇-05

文章目录`第五章 Thread的join方法及中断interupt方法详解文章目录文章目录一、Thread的join方法二、中断interupt方法一、Thread的join方法1、join()方法的作用就是让当前线程等待被join的线程执行结束之后再运行当前线程。2、join()方法需要在start方法之后调用。3、join()方法和join(time)如下案例中,当前线程是main线程,被join的是t1和t2线程,所有main线程会等待t1线程和t2线程执行完死掉再执行。publ

2022-05-09 23:06:47 494

原创 多线程基础篇-04

文章目录第四章 Thread构造函数文章目录文章目录一、构造Thread对象二、thread构造函数stacksize详细讲解三、daemon线程的创建以及使用场景分析一、构造Thread对象1、创建线程对象thread,默认有一个线程名,以thread-开头,从0开始计数,构造函数thread()。2、如果在构造thread的时候没有传递runnable或者没有复写thread的run方法,该thread将不会调用任何东西。如果传递了runnable接口的实例或者复写thread的run方法,

2022-05-08 22:11:03 128

原创 多线程基础篇-03

文章目录`第三章 策略模式在多线程中的应用文章目录文章目录@[TOC](文章目录)一、多线程模拟银行叫号二、用Runnable接口将线程的逻辑执行单元从控制中抽取出来三、策略模式在thread和runnable中的应用分析总结一、多线程模拟银行叫号public class TicketWindow extends Thread {private final String name;private static final int MAX = 50;private static int

2022-05-08 21:46:49 332

原创 多线程基础编-02

系列文章目录第二章 线程的生命周期及start方法源码文章目录系列文章目录一、线程的生命周期二、start方法源码剖析三、模板方法技巧总结一、线程的生命周期当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)五种状态。尤其是当线程启动以后,它不能一直“霸占”着CPU独自运行,所以CPU需要在多条线程之间切换,于是线程状态也会多次在运

2022-05-08 21:07:02 70

原创 多线程基础篇-01

多线程基础篇 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加第一章 线程的理解及创建启动提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录多线程基础篇前言一、线程的创建方式二、使用步骤1.Thread2.Runnable总结前言提示:这里可以添加本文要记录的大概内容:什么是程序,进程和线程程序是一个指令的集合进程:正在执行中的程序,是一个静态的概念进程是程序的一次静态执行过程,占用特定的地址空间,每个进程都是独立的,由三部分组成: cpu /da

2022-05-06 22:41:06 316

原创 airflow调度使用心得之开发

Airflow使用1.创建任务文件夹mkdir -p $AIRFLOW_HOME/dags # 对应配置airflow.cfg中的dags_folder注:dags_folder会自动寻找子目录下的dag2.部分API使用例子下面组件中使用的各项conn_id连接配置需通过airflow界面端添加,web UI页面登录用户为superuser,之后可通过Admin-》Connection...

2020-02-23 13:23:43 4136

原创 airflow调度使用心得

从第一次接触airflow到生产投产使用已经有近两个月的时间了,从部署到开发到运维调优,期间也遇到各种各样的问题,自己也从听说到熟悉。这篇博客主要从三个方面着手。一、安装部署airflow调度工具airflow安装使用一、安装airflow1.环境准备:1.1.安装mysql数据库解压 mariadb包:tar -xzvf mariadb-10.2.14-linux-x86_64.t...

2020-02-23 13:12:36 2742

原创 记录大数据学习历程

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2018-12-10 17:50:00 263

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除