daemon

Java 守护线程

…衆ロ難τιáo~ 提交于 2020-03-07 02:53:00
在 Java 中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 定义:守护线程——也称“服务线程”,它是后台线程,它有一个特性,即 为用户线程提供公共服务,在没有用户线程可服务时会自动离开。 优先级:守护线程的 优先级比较低 ,用于为系统中的其它对象和线程提供服务。 设置:通过 setDaemon(true) 来设置线程为“守护线程” ,必须在 thread.start() 之前设置。 在 Daemon 线程中产生的新线程也是 Daemon 的。 线程则是 JVM 级别的,以 Tomcat 为例,如果你在 Web 应用中启动一个线程,这个线程的生命周期并不会和 Web 应用程序保持同步。也就是说,即使你停止了 Web 应用,这个线程依旧是活跃的。 example:垃圾回收线程就是一个经典的守护线程,当我们的程序中不再有任何运行的 Thread,程序就不会再产生垃圾,垃圾回收器也就无事可做,所以 当垃圾回收线程是 JVM 上仅剩的线程时,垃圾回收线程会自动离开 。它始终在低级别的状态中运行,用于实时监控和管理系统中的可回收资源。 生命周期:守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。也就是说守护线程不依赖于终端,但是依赖于系统,与系统“同生共死”。当 JVM

CentOS 7安装Docker服务详细过程

*爱你&永不变心* 提交于 2020-03-06 06:50:08
---恢复内容开始--- Docker 简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 Docker 官网 : http://www.docker.com/ Docker 官方文档: https://docs.docker.com/ Docker Github 地址: https://github.com/docker/docker Docker 仓库: https://hub.docker.com/ Docker 中文社区: http://www.docker.org.cn/book/docker Docker 应用场景: https://www.zhihu.com/question/22969309 1.1、什么是Docker? Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotcloud公司。 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 docker中文社区

一文了解Docker

前提是你 提交于 2020-03-05 18:23:49
本文转自杨奇龙老师的公众号(yangyidba),他长期关注于数据库技术以及性能优化,故障案例分析,数据库运维技术知识分享,个人成长和自我管理等主题 假期把之前买的几本docker的书籍阅读一遍,本文是docker的学习笔记,了解docker的核心概念。 一 docker 是什么 Docker是dotCloud公司(后更名为Docker)基于go语言开发的容器项目,2013年开源。该项目后来加入Linux基金会,遵从了Apache 2.0协议,项目代码在GitHub上进行维护。 二 为什么要使用Docker Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。用户操作Docker的容器就像操作一个快速轻量级的虚拟机一样简单。Docker 提出 构建一次,到处运行 Build once,Run anywhere,Configure once,Run anything 对比虚拟机,Docker具有以下优点 快速的部署和交付:开发者可以使用一个标准的镜像来构建一套容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。解决开发环境和生产环境不一致带来的一系列问题,让开发人员和运维人员可以更加和谐相处。 启动速度更快:秒级启动。 更高效的虚拟化:它是内核级的虚拟化,因此可以实现更高的性能和效率。 高效的迁移:Docker可以运行在不同的平台

Docker 学习总结

廉价感情. 提交于 2020-03-03 08:25:16
问题一: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 解决方案: 修改docker镜像源: docker默认的源为国外官方源,下载速度较慢,可改为国内,加速 方案一 修改或新增 /etc/docker/daemon.json # vi /etc/docker/daemon.json { "registry-mirrors": ["http://hub-mirror.c.163.com"] } systemctl restart docker.service 问题二: redis 由于目标计算机积极拒绝,无法连接 解决方案: https://blog.csdn.net/weixin_42456466/article/details/87270959 命令总结: 检查当前 CentOS 系统内核版本 uname -r 检查当前 CentOS 系统版本 cat /etc/redhat-release Linux安装 CentOS安装命令 sudo yum update sudo yum install docker Ubuntu sudo apt

Daemon threads vs daemon processes

不羁的心 提交于 2020-03-03 07:25:51
问题 Based on the Python documentation, daemon threads are threads that die once the main thread dies. This seems to be the complete opposite behavior of daemon processes which involve creating a child process and terminating the parent process in order to have init take over the child process (aka killing the parent process does NOT kill the child process). So why do daemon threads die when the parent dies, is this a misnomer? I would think that "daemon" threads would keep running after the main

Daemon threads vs daemon processes

梦想与她 提交于 2020-03-03 07:25:10
问题 Based on the Python documentation, daemon threads are threads that die once the main thread dies. This seems to be the complete opposite behavior of daemon processes which involve creating a child process and terminating the parent process in order to have init take over the child process (aka killing the parent process does NOT kill the child process). So why do daemon threads die when the parent dies, is this a misnomer? I would think that "daemon" threads would keep running after the main

Supervisord

别来无恙 提交于 2020-03-01 17:52:21
Supervisord Supervisord 是用 Python 实现的一款非常实用的 进程管理工具 , supervisord 还要求管理的程序是非 daemon 程序 ,supervisord 会帮你把它转成 daemon 程序,因此如果用 supervisord 来管理 nginx 的话,必须在 nginx 的配置文件里添加一行设置 daemon off 让 nginx 以非 daemon 方式启动 。 supervisord 安装 安装 setuptools wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg sh setuptools-0.6c11-py2.7.egg easy_install supervisor echo_supervisord_conf >/etc/supervisord.conf mkdir /etc/supervisord.conf.d 修改配置 /etc/supervisord.conf [include] files = /etc/supervisord.conf.d/*.conf 新建管理的应用 cd /etc/supervisord.conf.d vim beepkg.conf 配置文件: [program:beepkg]

Ubuntu编译安装HAprox+Keepalived+MySQL负载高可用架构(结合Docker容器配置)

百般思念 提交于 2020-03-01 12:34:27
系统环境:Ubuntu16.04(Docker容器) 架构环境: Keepalived/HAproxy MASTER: 172.17.0.4 Keepalived/HAproxy BACKUP: 172.17.0.6 MySQL MASTER: 172.17.0.2 MySQL SLAVE: 172.17.0.3 HAproxy版本:haproxy-2.0.8.tar.gz Keepalived版本:keepalived-2.0.19.tar.gz 一、安装HAproxy(MASTER/BACKUP两台都要装) 1、前往官网 https://www.haproxy.org/ 下载HAproxy 解压,进入haproxy-2.0.8目录 vim INSTALL;查看安装说明 2、编译安装HAproxy (1)编译 报错1:bash: make: command not found 我直接用docker容易,make命令没安装,安装一下: apt-get -y install make 然后执行: make -j 2 TARGET=generic USE_GZIP=1 报错2:/bin/sh: 1: gcc: not found 未安装gcc,安装gcc: apt-get -y install gcc 然后再执行: make -j 2 TARGET=generic USE_GZIP=1

一文看懂docker容器技术架构及其中的各个模块

风格不统一 提交于 2020-03-01 01:24:45
概述 今天主要简单介绍下docker的技术架构及其中组成的各个模块。 技术架构 distribution 负责与docker registry交互,上传洗澡镜像以及v2 registry 有关的源数据 registry负责docker registry有关的身份认证、镜像查找、镜像验证以及管理registry mirror等交互操作。 image 负责与镜像源数据有关的存储、查找,镜像层的索引、查找以及镜像tar包有关的导入、导出操作。 reference负责存储本地所有镜像的repository和tag名,并维护与镜像id之间的映射关系。 layer模块负责与镜像层和容器层源数据有关的增删改查,并负责将镜像层的增删改查映射到实际存储镜像层文件的graphdriver模块。 graghdriver是所有与容器镜像相关操作的执行者。 1、docker client docker client 是docker架构中用户用来和docker daemon建立通信的客户端,用户使用的可执行文件为docker,通过docker命令行工具可以发起众多管理container的请求。 docker client发送容器管理请求后,由docker daemon接受并处理请求,当docker client 接收到返回的请求相应并简单处理后,docker client 一次完整的生命周期就结束了

Android Studio中如何提升Gradle Building的速度?

末鹿安然 提交于 2020-02-29 01:37:48
比起两三年前,现在开发Android应用已经可以很顺手了,无论是IDE还是开发框架、第三方库,都比较成熟了。但是呢,使用 Android Studio开发 时,免不了在调试时,看着gradle building一直在Loading,对于一般的项目也是需要一杯咖啡的时间了,特别是只想测下一丁点的小问题时,也要等这么长时间,实在是没有耐心。那么,经过一轮的Google与实践探索,终于得一大法,仿佛张无忌在昆仑洞下练成了九阳真经。   得此大法,可解决Android Studio Gradle building慢的问题了!将原来的编译时间从五到十分钟提升到30秒左右!    提速一:本地化引用第三方aar或jar包   在开发时,一般会引用到第三方库,例如,在项目中引用了 fabprogresscircle库,那么一般在项目的app目录下的 build.gradle 文件里会有这么一条记录:    compile 'com.github.jorgecastilloprz:fabprogresscircle:1.01 @aar '   Gradle在第一次Building时,会将引用的第三方库包下载到缓存里。下载到缓存里的文件应该是 fabprogresscircle-1.01.aar 。注意:如果build.gradle引用时没有 @aar 的话,那一般下载到缓存里的是 .jar 文件