大漠知秋的加油站

  • 首页
大漠知秋的加油站
你就当我的烂笔头吧
Java

使用 Undertow 替换掉 Tomcat

  官方说:For servlet stack applications, the spring-boot-starter-web includes Tomcat by including spring-boot-starter-tomcat, but you can use spring-boot-starter-jetty or spring-boot-starter-undertow instead   When switching to a different HTTP server, you need t…

2019年1月3日 0条评论 1214点热度 0人点赞 大漠知秋 阅读全文
Java

问题 - Spring Boot 以流的方式读取配置文件

问题说明   在以往的项目中,我们有时会读取资源目录下的*.config文件,有时会读取绝对路径,还挺好用,但是这种做法在Spring Boot项目中就不好使了。因为Spring Boot项目把文件都打了一个*.jar包,这是绝对路径就不好使了,要使用流的方式读取文件。 示例代码: Resource resource = new ClassPathResource("config/*.config");

2019年1月3日 0条评论 1211点热度 0人点赞 大漠知秋 阅读全文
Java

编写高质量代码 - Java

参考:编写高质量代码:改善Java程序的151个建议 持续更新、Java、笔记 1.使用 long 类型时注意使用 大写L // 错误的 long i = 1l; // 正确的 long i = 1L; 2.三元表达式类型务必一致   三元操作符是if-else的简化写法,在项目中使用它的地方很多,也非常好用,但是好用 又简单的东西并不表示就可以随便用,我们来看看下面这段代码: public static void main(String[] args) { int i = 80; String s = Strin…

2019年1月3日 0条评论 1166点热度 0人点赞 大漠知秋 阅读全文
Maven

Docker 安装 Maven 私服 Nexus 3.12.1

  Apache Maven 是当 Java 技术栈前最流行的项目管理工具,它提供了一系列方便快捷的命令帮助程序员们进行Java工程的开发工作。Maven 服务器位于美国,由于出国带宽和众多因素,在国内直接使用 Maven 的体验并不好。同时,国内还有很多公司的程序员开发机器无法直接连接互联网,鉴于这种情况,在公司区域网架设一部Maven私服能大大提高开发效率。   Apache Maven的私服有很多开源提供商,目前用的最多的就是 Sonatype Nexus Repository。 安装环境 ContOS 7.…

2019年1月3日 0条评论 1315点热度 0人点赞 大漠知秋 阅读全文
Develop Software

问题 - iTerm2 中文输出显示问号

  解决之道: export LC_ALL=zh_CN.UTF-8 export LANG=zh_CN.UTF-8

2019年1月3日 0条评论 1339点热度 0人点赞 大漠知秋 阅读全文
Golang

并发 - 同步

  之前喊过一句口号,倡导用通信来共享数据,而不是通过共享数据来进行通信,但考虑到即使成功地用 channel 来作为通信手段,还是避免不了多个 goroutine 之间共享数据的问题,Go 语言的设计者虽然对 channel 有极高的期望,但也提供了妥善的资源锁方案。 同步锁   Go 语言包中的 sync 包提供了两种锁类型:sync.Mutex 和 sync.RWMutex。Mutex 是最简单的一种锁类型,同时也比较暴力,当一个 goroutine 获得了 Mutex 后,其他 goroutine 就只能乖…

2019年1月3日 0条评论 1280点热度 0人点赞 大漠知秋 阅读全文
Golang

问题 - 出让时间片

  Go 和 Java 在并发执行上的不同还在于,Java 的多线程是一种抢占式的时间片占用规则,而 Go 的 goroutine 是一种非抢占式的时间片占用规则,也就是说,如果一个 goroutine 在使用 CPU 时间片,那么其他再多的 goroutine 都得阻塞。   我们可以在每个 goroutine 中控制何时主动出让时间片给其他 goroutine,这可以使用 runtime 包中的 Gosched() 函数实现。   实际上,如果要比较精细地控制 goroutine 的行为,就必须比较深入地了解 …

2019年1月3日 0条评论 1282点热度 0人点赞 大漠知秋 阅读全文
Golang

问题 - 多核并行化

  如果你的电脑是16核心的话,可以开16个 goroutine 共同计算一列数的的综合,就会发现总的执行时间没有明显缩短。再去观察 CPU 运行状态,你会发现尽管我们有16个 CPU 核心,但在计算过程中其实只有一个 CPU 核心处于繁忙状态,这是会让很多 Go 语言初学者迷惑的问题。   官方的答案是,这是当前版本的 Go 编译器还不能很智能地去发现和利用多核的优势。虽然确实创建了个 goroutine,并且从运行状态看这些 goroutine 也都在并行运行,但实际上所有这些 goroutine 都运行在同一…

2019年1月3日 0条评论 1230点热度 0人点赞 大漠知秋 阅读全文
Golang

channel

  channel 是 Go 语言在语言级别提供的 goroutine 间的通信方式。我们可以使用 channel 在两个或多个 goroutine 之间传递消息。channel 是进程内的通信方式,因此通过 channel 传递对象的过程和调用函数时的参数传递行为比较一致,比如也可以传递指针等。如果需要跨进程通信,建议用分布式系统的方法来解决,比如使用 Socket 或者 HTTP 等通信协议。Go 语言对于网络方面也有非常完善的支持。   channel 是类型相关的。也就是说,一个 channel 只能传递一…

2019年1月3日 0条评论 571点热度 0人点赞 大漠知秋 阅读全文
Golang

goroutine

并发概念   回到在 Windows 和 Linux 出现之前的古老年代,程序员在开发程序时并没有并发的概念,因为命令式程序设计语言是以串行为基础的,程序会顺序执行每一条指令,整个程序只有一个执行上下文,即一个调用栈,一个堆。并发则意味着程序在运行时有多个执行上下文,对应着多个调用栈。我们知道每一个进程在运行时,都有自己的调用栈和堆,有一个完整的上下文,而操作系统在调度进程的时候,会保存被调度进程的上下文环境,等该进程获得时间片后,再恢复该进程的上下文到系统中。   从整个操作系统层面来说,多个进程是可以并发的,那…

2019年1月3日 0条评论 552点热度 0人点赞 大漠知秋 阅读全文
1…1112131415
分类
  • C++ / 11篇
  • Develop Software / 3篇
  • Docker CE / 24篇
  • Elasticsearch / 3篇
  • FastDFS / 1篇
  • Flutter / 1篇
  • Git / 3篇
  • GitLab / 6篇
  • Golang / 21篇
  • Http Client 4.5.2 / 2篇
  • Java / 14篇
  • Kubernetes / 19篇
  • Linux / 65篇
  • Mac / 5篇
  • Maven / 1篇
  • MyBatis / 1篇
  • MySQL / 8篇
  • Nginx / 6篇
  • Rabbit MQ / 10篇
  • Redis / 1篇
  • Spring / 1篇
  • Spring Boot / 12篇
  • Spring Cloud Finchley.RELEASE / 50篇
  • Sublime / 2篇
  • Windows / 1篇
  • 吉他 / 2篇
  • 图论 / 8篇
  • 数据结构与算法 / 11篇
  • 未分类 / 1篇

COPYRIGHT © 2023 大漠知秋的加油站. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备16029200号-2