stop

线程的正确停止

二次信任 提交于 2020-03-02 17:04:17
线程停止的几种方式: 线程运行完成,正常停止 执行stop方法,暴力停止,现已弃用 执行interrupt方法,现在使用。 stop方法为什么被弃用? 使用stop方法终止线程会 释放掉此线程锁定的所有的监视器 ,如果线程修改了锁定对象的内容在还没有被正常处理之前线程被终止了。将会造成数据不一致的后果。 例如银行取款的例子:在线程A中进行取款操作,取款操作是一个同步方法,其中共有三个步骤:输入密码,取钱,修改余额。当用户a在输入密码,取钱之后,线程A.stop();线程终止。被修改的余额还没有写回数据库,从而造成数据混乱。 举例说明:首先定义一个操作类Login package com.feng.example; public class Login { private String username="a"; private String password="aa"; synchronized public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } synchronized public String getPassword() { return password; } public void

TODO:Node.js pm2使用方法

两盒软妹~` 提交于 2019-12-29 22:52:23
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> TODO:Node.js pm2使用方法 pm2 是一个带有负载均衡功能的Node应用的进程管理器. 当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。 1.使用 npm install pm2 -g 安装 pm2 2.使用pm2管理 Node 进程,执行以下命令启动 node 服务: pm2 start process.json 错误日志输出,less ~/.pm2/logs/video-error.log,Node Error: Cannot find module ‘express’: 3.设置NODE_PATH环境变量 export PATH=$PATH:/data/node/node-v6.9.1-linux-x64/bin export NODE_PATH=”/data/node/node-v6.9.1-linux-x64/lib/node_modules” 4.安装依赖保 npm install -d 5.启动node服务, pm2 start process.json 6.测试服务端口是否开启,telnet 127.0.0.1 9994 7.停止pm2管理的App,pm2 stop video,status为stopped则停止成功 8

Linux Oracle服务启动&停止脚本与开机自启动

旧街凉风 提交于 2019-12-03 19:41:37
一、在Linux下启动Oracle 登录到CentOS,切换到oracle用户权限 # su – oracle 接着输入: $ sqlplus "/as sysdba" 原本的画面会变为 SQL> 接着请输入 SQL> startup 就可以正常的启动数据库了。 另外停止数据库的指令如下: SQL> shutdown immediate 二、检查Oracle DB监听器是否正常 回到终端机模式,输入: $ lsnrctl status 检查看看监听器是否有启动 如果没有启动,可以输入: $ lsnrctl start 启动监听器 SQL> conn sys@orcl as sysdba 然后输入密码,sys以sysdba身份登入数据库。 三、启动emctl 另外也可以发现http://localhost.localdomain:1158/em 目前是没有反应的,这边要另外启动,启动的指令如下: $ emctl start dbconsole 这个指令运行时间较长,执行完的画面如下: 手动启动Oracle数据库完毕,下面创建系统自行启动Oracle的脚本。 四、Oracle启动&停止脚本 1. 修改Oracle系统配置文件:/etc/oratab,只有这样,Oracle 自带的dbstart和dbshut才能够发挥作用。 # vi /etc/oratab orcl:/opt

ceph源代码部署测试环境

久未见 提交于 2019-12-02 04:12:56
一、下载ceph源代码。 由于通过源代码编译、安装并部署ceph,所以通常从github上下载ceph源代码。 #git clone https://github.com/ceph/ceph.git 二、编译ceph源代码。 最好不要在git的master上编译ceph源代码,会有不少坑。最好使用最新发布的tag上编译,到目前为止ceph最新发布的版本号是v10.2.1,因此在该tag上编译。 #git checkout -b v10.2.1 v10.2.1 #git branch master *v10.2.1 由此可以看到,当前代码即是v10.2.1 tag处的源代码。 编译ceph请参考http://my.oschina.net/linuxhunter/blog/682013 三、安装ceph。 安装编译好的ceph请参考http://my.oschina.net/linuxhunter/blog/682013 四、部署测试环境。 ceph在源代码路径的src目录下有一个vstart.sh脚本,该脚本用来快速搭建由源代码编译出来的ceph集群。使用vstart.sh脚本创建快速ceph集群命令如下: #./vstart.sh -m 192.168.250.93 -n -d -r --mon_num 1 --osd_num 3 --mds_num 0 --bluestore