shutdown

关闭线程池的正确姿势,shutdown(), shutdownNow()和awaitTermination() 该怎么用?

走远了吗. 提交于 2019-12-17 04:27:15
ExecutorService 接口提供了三个方法用于手动关闭线程池,分别是 shutdown() , shutdownNow() 和 awaitTermination() 。我们最经常使用的 ThreadPoolExecutor 正是 ExecutorService 的实现类,自然也实现了这些方法。相信有很多小伙伴都没搞明白这些方法的区别,也不清楚在不同的情况下应该使用哪个方法。本文将通过 ThreadPoolExecutor 源码分析和简单用例向你展示这些方法的区别联系和使用场景,很多重点都在代码块的注释中,注意看哦!话不多说,上源码。 一、源码分析 1.1 线程池运行状态 ThreadPoolExecutor 使用 runState (运行状态)这个变量对线程池的生命周期进行控制,线程池关闭过程会有频繁的运行状态转化,所以我们首先需要了解线程池的各种运行状态及其之间的转化关系, runState 一共有以下5种取值: RUNNING:接收新的任务并对任务队列里的任务进行处理; SHUTDOWN:不再接收新的任务,但是会对任务队列中的任务进行处理; STOP:不接收新任务,也不再对任务队列中的任务进行处理,并中断正在处理的任务; TIDYING:所有任务都已终止,线程数为0,在转向 TIDYING 状态的过程中,线程会执行 terminated() 钩子方法

在同一台电脑部署多个Tomcat服务

亡梦爱人 提交于 2019-12-17 03:22:47
背景:公司的项目使用的是jdk1.6,Tomcat7.0,比较旧,打算建一些测试项目用jdk1.8,Tomcat9.0。 参考了网上几篇文章 http://dong-shuai22-126-com.iteye.com/blog/1763666 http://www.cnblogs.com/whylaughing/p/5896268.html 个别地方做了整理: 1.使用压缩版的tomcat不能使用安装版的。 2.第一个tomcat的配置不变。 3.增加环境变量CATALINA_HOME2,值为新的tomcat的地址;增加环境变量CATALINA_BASE2,值为新的tomcat的地址。 4.修改新的tomcat中的startup.bat,把其中的CATALINA_HOME改为CATALINA_HOME2。 开头加上SET JAVA_HOME=D:\java\jdk1.8.0_111\jre (JDK所在路径) 5.修改新的tomcat中的catalina.bat,把其中的CATALINA_HOME改为CATALINA_HOME2,CATALINA_BASE改为 CATALINA_BASE2。 6.修改conf/server.xml文件,修改以下3个地方。 <Server port="8006" shutdown="SHUTDOWN"> (原来是8005) <Connector

同一台电脑上配置多个解压版tomcat方法(本例安装两个)

半腔热情 提交于 2019-12-17 03:22:34
一、在环境变量中设置变量() CATALINA_HOME = tomcat路径一 CATALINA_BASE = tomcat路径一 CATALINA_HOME2 = tomcat路径二 CATALINA_BASE2 = tomcat路径二 二、修改一个tomcat中bin文件夹下的startup.bat、shutdown.bat、catalina.bat中的变量为CATALINA_HOME2、CATALINA_BASE2,另一个tomcat不用修改。 三、修改conf文件夹下面的server.xml中的端口为没被占用的端口。 <Server port="8004" shutdown="SHUTDOWN"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="GBK"/> <Connector port="8011" protocol="AJP/1.3" redirectPort="8443" /> 四、删除conf\Catalina\localhost下面的的两个xml文件,启动tomcat成功。 来源: https://www.cnblogs.com/aegisada/p/4289765.html

How do I exit a WPF application programmatically?

牧云@^-^@ 提交于 2019-12-17 02:26:46
问题 In the few years I've been using C# (Windows Forms), I've never used WPF. But, now I love WPF, but I don't know how I am supposed to exit my application when the user clicks on the Exit menu item from the File menu. I have tried: this.Dispose(); this.Exit(); Application.ShutDown(); Application.Exit(); Application.Dispose(); Among many others. Nothing works. 回答1: To exit your application you can call System.Windows.Application.Current.Shutdown(); As described in the documentation to the

How do I exit a WPF application programmatically?

痴心易碎 提交于 2019-12-17 02:25:58
问题 In the few years I've been using C# (Windows Forms), I've never used WPF. But, now I love WPF, but I don't know how I am supposed to exit my application when the user clicks on the Exit menu item from the File menu. I have tried: this.Dispose(); this.Exit(); Application.ShutDown(); Application.Exit(); Application.Dispose(); Among many others. Nothing works. 回答1: To exit your application you can call System.Windows.Application.Current.Shutdown(); As described in the documentation to the

cmd命令行(二)

天大地大妈咪最大 提交于 2019-12-16 07:57:59
echo 输出 echo, // 输出一个"回车换行",空白行 echo off // 后续所有命令在执行前,不打印出命令的内容 echo on // 后续所有命令在执行前,打印出命令的内容 echo 123 // 输出123到终端屏幕 echo "Hello World!!!" // 输出Hello World!!!到终端屏幕 echo 456 > a.txt // 输出456的字符串到当前目录中的a.txt文件中(以覆盖的方式) find 文件中搜索字符串 例:find /N /I "6" q.txt // 在q.txt文件中忽略大小写查找6字符串,并带行号显示查找后的结果 例:find /C "6" q.txt // 只显示在q.txt文件中查找到6字符串的次数 例:find /V "exe" 1.txt // 显示未包含1.txt文件中未包含exe字符串的行 findstr 文件中搜索字符串 例:findstr "hello world" q.txt // 在q.txt文件中搜索hello或world 例:findstr /c:"hello world" q.txt // 在q.txt文件中搜索hello world 例:findstr /c:"hello world" q.txt nul // 在q.txt文件中搜索hello world,并在每行结果前打印出q.txt:

Linux系统命令大全

萝らか妹 提交于 2019-12-16 03:18:20
Linux操作系统介绍 linux的文本模式介绍[root@localhost ~] 第一列root代表当前用户 第二列localhost代表主机名 第三列~代表当前所在的目录 家目录home目录linux的命令可以补全 可以不全目录和文件名,如果不能补全双击tab键可以显示出要选择的命令 linux的登陆与登出 login 登入系统 logout 登出系统 exit 注销当前用户 clear 清屏命令 linux的关机 shutdown 关机命令 shutdown now 立即进入维护模式 halt 直接关机 shutdown -h now 立即关机 shutdown -r now 立即重新启动计算机 shutdown -h 20:00& 20:00 关闭计算机 shutdown -r 20:00& 20:00 重新启动计算机 shutdown -k 3 warning:system will shutdown! 只是发送消息给所以用户3分钟后进入维护模式 shutdown +3 “system will shutdown after 3 minutes!” 发送消息给所以用户3分钟后进入系统维护模式 linux的Init进程 Init是Linux操作系统中不可缺少的程序之一。init进程是Linux内核引导运行的,是系统中的第一个进程,其进程号(PID)永远为1。#0 停机

Oracle中shutdown和startup命令详解

不羁岁月 提交于 2019-12-16 01:08:10
shutdown normal 不断开现在连接的用户,阻止任何用户建立新的连接,包括管理员在内。已经连接的用户能够继续他们当前的工作,如递交新的更新事务,直到此用户自行断开连接.这样需要等待的时间长,可以查出现连用户,再通知其自行断开. 所有的用户都断开连接,数据库才进行关闭操作,即关闭数据库、卸载数据库、终止例程。在这种情况下关闭的数据库在重新启动后,不会出现问题。启动时不需要实例恢复。 shutdown transactional 阻止任何用户建立新的连接。等待所有当前连接用户的未递交的活动事务提交完毕,然后立即断开用户的连接。所有的用户都断开连接则立即关闭数据库,进行关闭数据库、卸载数据库、终止进程等操作。这种方式,用户有可能正在算账,做复杂报表!一次数据库操作做不完的,在刚做了一次数据库操作后,将被断开,这样对用户有一定影响.启动时不需要实例恢复。 shutdown immediate 阻止任何用户新的连接,同时限制当前连接用户开始新的事务。如果已连接用户有未完成的事务,则数据库系统不会等待他们完成,而是直接把当前未递交的事务回退。数据库系统不再等待用户主动断开连接,当未递交的事务回退成功后,系统会直接关闭、卸载数据库,并终止数据库进程。启动时不需要实例恢复。 shutdown abort 当数据库出现故障时,可能以上三种方式都无法正常关闭数据库,则使用这种方法

linux学习首次登陆与帮助命令

大兔子大兔子 提交于 2019-12-15 05:36:24
认识Linux的基本命令 一、显示日期与时间的命令: date date +%Y/%m/%d date +%H:%M 二、显示日历的命令: cal [[month] year] cal 10 2019 三、简单的计算器: bc 通过设置: scale=number 指定显示的小数位数 quit 退出 四、linux的在线求助man page 与info page: 1.查找与xxx命令有关的说明文件(精确查找) man -f xxx 会出现xxx (1~n) man 1 xxx 就是查看xxx(1)的说明文件 2.查找包含xxx的说明文件 man -k xxx 3.info xxx 五、常用关机重启指令 注意因为关机重启涉及到整个系统的操作需要root用户权限 将系统服务停掉之后重启: shutdown -r 将系统服务停止之后关机: shuodown -h shutdown -h now 立即关即 shutdown -h 20:25 20:25关机 shutdown -h +10 十分钟之后关机 shutdown -r +30 'the system will reboot' 三十分钟后重启,并且显示信息给所有的用户 shuodown -k now 'this system will reboot' 只是发出警告信息,并不会真的关机 重启还可以使用 reboot 关机还可以使用

交换机switch 的shutdown 与 no shutdown

穿精又带淫゛_ 提交于 2019-12-14 08:09:36
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> shutdown是关闭接口(端口),接口状态会变为DOWN,no shutdown是激活接口(端口),状态变为UP,一般在给vlan或者端口配置管理ip或者端口ip后使用。 有时候我们配置某个端口前会需要把端口关闭到,配置好后才打开。 来源: oschina 链接: https://my.oschina.net/u/4082616/blog/3142906