Coder Social home page Coder Social logo

mybloggitalk's People

Watchers

 avatar  avatar

mybloggitalk's Issues

java多线程3-fork/join框架 | Jone Sun's Blog

https://jonesun.github.io/20200728/java/%E5%A4%9A%E7%BA%BF%E7%A8%8B/a490755/

概念JDK1.7引入了一种新的并行编程模式”fork-join”,它是实现了”分而治之”**的Java并发编程框架。它对问题的解决思路是分而治之,先将一个问题fork(分为)几个子问题,然后子问题又分为孙子问题,直至细分为一个容易计算的问题,然后再将结果依次join(结合)为最终的答案。对程序员来说,叫递归**更加合适。只不过普通的递归是在单线程中完成的,而这里的递归则把递归任务通过invokeA

jenkins使用 | Jone Sun's Blog

https://jonesun.github.io/20210706/jenkins/9b38587/

概念话说不会偷懒的程序员不是好的程序员,笔者就时常如果有一个软件能够帮我把日常的体力工作都给干了,这样就可以有时间做更多的脑力工作了。逛博客的时候,经常看到DevOps和CI/CD的相关文章,抱着试试看的想法研究下如何实现。当然跟很多初次看到这几个单词都一脸懵的朋友一样,肯定搜索下都是什么意思: DevOps: DevOps是Development和Operations的组合,是一种重视软件开发

SpringBoot-集成flyway实现数据库版本控制 | Jone Sun's Blog

https://jonesun.github.io/20201209/java/springboot/933cf8db/

前言在日常项目开发中,代码可以使用GIT/SVN 来进行版本控制,而数据库的更新却需要人工进行干预。 之前我在项目开发时会根据项目版本手工创建好每次版本迭代会更新的sql文件,发布版本时先在线上执行下对应sql,然后再更新应用版本。在研究自动构建时就想有没有一种技术/框架可以将这种手工行为变为自动。 偶然的机会在网上搜索到flyway-一个能对数据库变更做版本控制的工具,通过在项目中集成就可以在每

java多线程6-ConcurrentHashMap | Jone Sun's Blog

https://jonesun.github.io/2020/08/11/java%E5%A4%9A%E7%BA%BF%E7%A8%8B6-ConcurrentHashMap/

concurrentHashMap存在是为了解决并发问题 1、get方法不加锁;2、put、remove方法要使用锁jdk7使用锁分离机制(Segment分段加锁)jdk8使用cas + synchronized 实现锁操作3、Iterator对象的使用,运行一边更新,一遍遍历(可以根据原理自己拓展)4、复合操作,无法保证线程安全,需要额外加锁保证5、并发环境下,ConcurrentHashMap

java多线程1-从Thread到Future再到CompletableFuture | Jone Sun's Blog

https://jonesun.github.io/20200714/java/%E5%A4%9A%E7%BA%BF%E7%A8%8B/36c04c8a/

引言Java项目编程中,为了充分利用计算机CPU资源,一般开启多个线程来执行异步任务。多线有很多好处,其中最重要的是: 可以发挥多核CPU的优势 随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的,4核、8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%。单核CPU上所谓的”多线程”那是假的多线程,同一时间处理器

java-io | Jone Sun's Blog

https://jonesun.github.io/2020/10/22/java-io/#more

InputStream代表输入字节流,OuputStream代表输出字节流 如果读写的是文本文件则可使用 Reader和Writer表示字符流,字符流传输的最小数据单位是char 字符类型char表示一个字符。Java的char类型除了可表示标准的ASCII外,还可以表示一个Unicode字符

java多线程1-从Thread到Future再到CompletableFuture | Jone Sun's Blog

https://jonesun.github.io/2020/07/14/java%E5%A4%9A%E7%BA%BF%E7%A8%8B1-%E4%BB%8EThread%E5%88%B0Future%E5%86%8D%E5%88%B0CompletableFuture/

引言Java项目编程中,为了充分利用计算机CPU资源,一般开启多个线程来执行异步任务。多线有很多好处,其中最重要的是: 可以发挥多核CPU的优势 随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的,4核、8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%。单核CPU上所谓的”多线程”那是假的多线程,同一时间处理器

windows上使用jenkins构建并部署springboot项目 | Jone Sun's Blog

https://jonesun.github.io/20210706/jenkins/5b02ceab/

创建任务在安装并配置好Jenkins后,我们来构建并部署springboot项目 创建任务首先准备一个SpringBoot项目上传到上面凭据所在的git托管网站中,以便Jenkins可以正常拉取源码 新建Item-选择【构建一个Maven项目】(如果这里没有这个选项,回到上篇安装插件Maven Integration并重启Jenkins) JDK选择该项目构建时的Java版本(如果这里没有所需的

java-引用 | Jone Sun's Blog

https://jonesun.github.io/20201130/java/aee68e6b/

数据类型Java里将数据类型分为了基本数据类型和引用数据类型,基本数据类型包含: byte、char、short、int、float、double、long、boolean,剩下的都是引用类型。最常用的就是String字符串: 基本数据类型的值都是直接保存在变量中的(一个变量一个值,可以体会到类似Integer.valueof缓存值的用意) 而引用类型的变量类似于C语言的指针,它内部存储一个“地

java多线程5-并发工具类CountDownLatch&CyclicBarrier&Semaphore | Jone Sun's Blog

https://jonesun.github.io/2020/07/31/java%E5%A4%9A%E7%BA%BF%E7%A8%8B5-%E5%B9%B6%E5%8F%91%E5%B7%A5%E5%85%B7%E7%B1%BBCountDownLatch&CyclicBarrier&Semaphore/

CountDownLatch一个或多个线程等待其他线程完成操作 概念CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成一些任务,然后在CountDownLatch上等待的线程就可以恢复执行接下来的任务。 CountDo

java多线程9-BlockingQueue和BlockingDeque | Jone Sun's Blog

https://jonesun.github.io/2020/08/18/java%E5%A4%9A%E7%BA%BF%E7%A8%8B9-BlockingQueue%E5%92%8CBlockingDeque/

概念 阻塞队列BlockingQueue就是为线程之间共享数据而设计的 queue&dequequeue: 先进先出队列 deque: 双端队列,继承自queue,可以在首尾插入或删除元素 BlockingQueue&BlockingDequeBlockingQueue: 阻塞队列 BlockingDeque: 阻塞双端队列,在不能够插入元素时,它将阻塞住试图插入元素的线程;在

java设计模式-抽象工厂模式 | Jone Sun's Blog

https://jonesun.github.io/20201027/java/designPatterns/5ee502d3/

前言抽象工厂模式(Abstract Factory)是为了让创建工厂和一组产品与使用相分离,并可以随时切换到另一个工厂以及另一组产品; 工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,我们可以考虑将一些相关的产品组成一个”产品族”,由同一个工厂来统一生产,这就是

java设计模式-桥接模式 | Jone Sun's Blog

https://jonesun.github.io/2020/10/30/java%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E6%A1%A5%E6%8E%A5%E6%A8%A1%E5%BC%8F/

前言 桥接模式通过分离一个抽象接口和它的实现部分,使得设计可以按两个维度独立扩展 桥接模式(Bridge): 将抽象化与实现化解耦,使得二者可以独立变化。是为了避免直接继承带来的子类爆炸 像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一

java-时间 | Jone Sun's Blog

https://jonesun.github.io/20201022/java/1956c086/

前言日常开发中必不可少要与时间打交道,而关于时间的处理网上有很多文章,下面基于大神的文章和我自己的理解对时间做一个整理 开始之前我们得先明确下一些概念,有助于后面程序代码得理解 时间:类似于08:00和2020年10月1日12:00,这个叫做时间,时间是一个相对得概念。在国内我们说得时间和国外得时间表示得就不一样,比如现在是2020年10月1日10:00,在美国芝加哥得话现在就是2020年09月

java多线程8-locks锁 | Jone Sun's Blog

https://jonesun.github.io/2020/08/17/java%E5%A4%9A%E7%BA%BF%E7%A8%8B8-locks%E9%94%81/

前言 任何一个新引入的知识都是为了解决以往系统中出现的问题,否则新引入的将变得毫无价值 如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁。 但当有多个线程读写文件时,读操作和写操作会发生冲突现象,写操作和写操作会发生冲突现象,但是读操作和读操作不会发生冲突现象,通过Lock就可以实现。 Lock接口, 提供

java多线程2-线程池 | Jone Sun's Blog

https://jonesun.github.io/20200723/java/%E5%A4%9A%E7%BA%BF%E7%A8%8B/87bed628/

一、使用线程池的好处 降低系统资源消耗, 通过重用已存在的线程, 降低线程创建和销毁造成的消耗 提高系统响应速度, 当有任务到达时, 通过复用已存在的线程, 无需等待新线程的创建便能立即执行 方便线程并发数的管控。因为线程若是无限制的创建, 可能会导致内存占用过多而产生OOM, 并且会造成cpu过度切换(cpu切换线程是有时间成本的-需要保持当前执行线程的现场, 并恢复要执行线程的现场)。 提供更

javaFx-属性绑定 | Jone Sun's Blog

https://jonesun.github.io/2020/11/19/javaFx-%E5%B1%9E%E6%80%A7%E7%BB%91%E5%AE%9A/#more

前言javafx.beans.property包提供了丰富的Property类用于对java对象中的属性和javaFX UI控件进行绑定,可达到: 在任意位置修改java对象的值时可实时更新绑定的UI控件的显示,无需手动编写更新方法 javaFX UI控件进行变化时(如用户输入内容),实时写入对应的java对象中,无需手动设置 java属性 javaFx对应Property 绑定构建类

windows上安装jenkins | Jone Sun's Blog

https://jonesun.github.io/20210706/jenkins/a15eda66/

安装前准备下载配置jdk从Jenkins的官网可以看到 较新的Jenkins需要运行在Java 8 或者 Java 11上,我们安装java8版本,由于Oracle下载jdk需要注册账户,我们下载openjdk,这里推荐 Liberica OpenJDK 直接下载zip版本,并在环境变量中配置JAVA_HOME,使用cmd执行java -version查看是否配置成功 如果电脑里已经安装了Ja

java多线程5-并发同步器CountDownLatch&CyclicBarrier&Semaphore | Jone Sun's Blog

https://jonesun.github.io/2020/07/31/java%E5%A4%9A%E7%BA%BF%E7%A8%8B5-%E5%B9%B6%E5%8F%91%E5%90%8C%E6%AD%A5%E5%99%A8CountDownLatch&CyclicBarrier&Semaphore/

CountDownLatch倒计时锁: 一个或多个线程等待其他线程完成操作 概念CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成一些任务,然后在CountDownLatch上等待的线程就可以恢复执行接下来的任务。

SpringBoot-集成log日志 | Jone Sun's Blog

https://jonesun.github.io/2020/07/24/SpringBoot-%E9%9B%86%E6%88%90log%E6%97%A5%E5%BF%97/

前言日志是开发过程中必不可少的模块,出现异常后可以通过查看日志看排查原因 使用常用日志框架 JDK Logging JDK提供的日志框架,由于自身有些局限性,故不太流行 Commons Logging Commons Logging是一个第三方日志库,它是由Apache创建的日志模块。Commons Logging的特色是,它可以挂接不同的日志系统,并通过配置文件指定挂接的日志系统。默认情况

java多线程4-volatile&synchronized | Jone Sun's Blog

https://jonesun.github.io/2020/07/30/java%E5%A4%9A%E7%BA%BF%E7%A8%8B4-volatile&synchronized/

并发编程三要素1. 原子性即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行 只有简单的读取、赋值(而且必须是将数字赋值给某个变量,变量之间的相互赋值不是原子操作)才是原子操作 可以通过 synchronized 和 Lock 来实现。由于 synchronized 和 Lock 能够保证任一时刻只有一个线程执行该代码块,那么自然就不存在原子性问题了,从而保证了原

java-引用 | Jone Sun's Blog

https://jonesun.github.io/2020/11/30/java-%E5%BC%95%E7%94%A8/#more

数据类型Java里将数据类型分为了基本数据类型和引用数据类型,基本数据类型包含: byte、char、short、int、float、double、long、boolean,剩下的都是引用类型。最常用的就是String字符串: 基本数据类型的值都是直接保存在变量中的(一个变量一个值,可以体会到类似Integer.valueof缓存值的用意) 而引用类型的变量类似于C语言的指针,它内部存储一个“地

java多线程2-线程池 | Jone Sun's Blog

https://jonesun.github.io/20200723/java/%E5%A4%9A%E7%BA%BF%E7%A8%8B/87bed628/

一、使用线程池的好处 降低系统资源消耗, 通过重用已存在的线程, 降低线程创建和销毁造成的消耗 提高系统响应速度, 当有任务到达时, 通过复用已存在的线程, 无需等待新线程的创建便能立即执行 方便线程并发数的管控。因为线程若是无限制的创建, 可能会导致内存占用过多而产生OOM, 并且会造成cpu过度切换(cpu切换线程是有时间成本的-需要保持当前执行线程的现场, 并恢复要执行线程的现场)。 提供更

java-时间 | Jone Sun's Blog

https://jonesun.github.io/2020/10/22/java-%E6%97%B6%E9%97%B4/

前言日常开发中必不可少要与时间打交道,而关于时间的处理网上有很多文章,下面基于大神的文章和我自己的理解对时间做一个整理 开始之前我们得先明确下一些概念,有助于后面程序代码得理解 时间:类似于08:00和2020年10月1日12:00,这个叫做时间,时间是一个相对得概念。在国内我们说得时间和国外得时间表示得就不一样,比如现在是2020年10月1日10:00,在美国芝加哥得话现在就是2020年09月

SpringCloud集成使用 | Jone Sun's Blog

https://jonesun.github.io/20210319/java/springcloud/55535/

前言顾名思义是跟云相关的,云程序实际上就是指分布式应用程序,所以Spring Cloud就是为了让分布式应用程序编写更方便,更容易而提供的一组基础设施,它的核心是Spring框架,利用Spring Boot的自动配置,力图实现最简化的分布式应用程序开发。 截至目前(2021-06-22)官网 最新版本为2020.0.3版 Spring Cloud包含了一大堆技术组件,既有开源社区开发的组件,也有商

java多线程10-ThreadLocal | Jone Sun's Blog

https://jonesun.github.io/2020/08/24/java%E5%A4%9A%E7%BA%BF%E7%A8%8B10-ThreadLocal/

概念ThreadLocal提供了线程内存储变量的能力,这些变量不同之处在于每一个线程读取的变量是对应的互相独立的。通过get和set方法就可以得到当前线程对应的值。 原理ThreadLocalMap是ThreadLocal类的一个静态内部类,它实现了键值对的设置和获取,每个线程中都有一个独立的ThreadLocalMap副本,它所存储的值,只能被当前线程读取和修改。ThreadLocal类通过操作

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.