cst

Java 线程 Interrupt() 方法解析

匿名 (未验证) 提交于 2019-12-02 21:53:52
Java中我们可以通过一些手段关闭一个线程。关闭一个线程有两种方式:一种是强制关闭,比如说是exit退出当前线程,stop()方法强制关闭一个线程,Interrupt方法给一个线程打上标识,如果遇到阻塞的情况下抛出InterruptedException 结束线程。 其中使用stop方法的方式强制关闭线程的方式已经不推荐了,因为可能导致一些难以预料的后果,并且这些方法在新版本的Java API中已经标注为将要过期。现在一般使用Interrupt方法的方式来关闭线程。 Java Interrupt() 方法没法强制关闭一个线程,能够做的是给线程设置中断标志。 对于处于阻塞状态的线程调用interrupt()方法的时候, 会抛出一个InterruptException,并且结束线程的等待状态,直接跳转到异常处理的代码块 。 也就是说,Interrupt方法可以结束处于阻塞状态的线程(比如调用sleep,join,wait方法而阻塞的线程) 我的代码和我的日志 代码: import java.util.Date; public class InterrupteTest { private static Object lock = new Object(); public static void main(String[] args) { //

centos7修改时区EDT------CST

情到浓时终转凉″ 提交于 2019-12-01 12:15:28
[root@slave1 logs]# date Tue Aug 28 21:37:04 EDT 2018 [root@slave1 logs]# mv /etc/localtime /etc/localtime.bak [root@slave1 logs]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime [root@slave1 logs]# date Wed Aug 29 09:41:07 CST 2018 [ 来源: https://www.cnblogs.com/zhangmingda/p/11685036.html

Java 解决死锁的方法实例详解

空扰寡人 提交于 2019-12-01 08:31:10
死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 java 死锁产生的四个必要条件: 1>互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用 2>不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。 3>请求和保持,即当资源请求者在请求其他的资源的同时保持对原有资源的战友。 4>循环等待,即存在一个等待队列:P1占有P2的资源,P2占有P3的资源,P3占有P1的资源。这样就形成了一个等待环路。 当上述四个条件都成立的时候,便形成死锁。当然,死锁的情况下如果打破上述任何一个条件,便可让死锁消失。下面用 java代码来模拟一下死锁的产生。 解决死锁问题的方法是:一种是用 synchronized,一种是用Lock显式锁实现。 而如果不恰当的使用了锁,且出现同时要锁多个对象时,会出现死锁情况,如下: /* author by w3cschool.cc LockTest.java */ import java.util.Date; public class LockTest { public static String obj1 = "obj1"; public static String obj2 = "obj2"; public static void main

CentOS7--配置时间和日期

北慕城南 提交于 2019-11-30 21:41:09
CentOS7提供三个命令行工具,可用于配置和显示有关系统日期和时间的信息。 timedatectl: Linux 7中的新增功能,也是systemd其中的一部分。 date:系统时钟,也成为软件时钟,一旦系统启动并且系统时钟被初始化,系统时钟就完全独立硬件时钟。 hwclock: real-time clock ( RTC )通常被称为 硬件时钟 ,(在系统集成电路板上),即使在机器关闭时也能正常工作。实时时钟可以使用UTC( Universal Time )或本地时间,建议使用UTC。 使用 timedatectl 命令 显示当前日期和时间: 1 timedatectl 1 2 3 4 5 6 7 8 9 [root@zydev ~] # timedatectl Local time : Mon 2017-11-06 01:22:46 CST #中部标准时间,UTC+8 Universal time : Sun 2017-11-05 17:22:46 UTC RTC time : Sun 2017-11-05 17:22:46 Time zone: Asia /Shanghai (CST, +0800) NTP enabled: no NTP synchronized: no RTC in local TZ: no DST active: n /a

JAVA CST时间 转换成Date

不想你离开。 提交于 2019-11-30 02:57:13
Mybatis中处理Oracle时间类型是个比较麻烦的问题,特别是需要用到时间做比较的,可参考以下代码与思路: 格式化CST时间 SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US); CST时间转换成字符串,实体中为date类型的 toString() 转换即可 String dateStr = "Mon Sep 02 00:00:00 CST 2019"; CST时间字符串转换为Date类型 Date date = (Date) sdf.parse(dateStr); Date类型转换为常用时间类型字符串 String formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date); 拿到时间字符串后就可以在sql中来处理了,如: <if test="formatStr != null and formatStr != ''"> and XXX >= to_date('${formatStr }','yyyy-MM-dd hh24:mi:ss') </if> java mybatis XML 文件中不允许出现 ">" 、 "<" 之类的符号, > 是 ">" 的转义 来源: https:

zookeeper入门

谁说我不能喝 提交于 2019-11-30 01:20:50
zookeeper 简介 Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。 zookeeper 单机使用 访问http://zookeeper.apache.org/releases.html 并下载最新版本的ZooKeeper,这里我使用的版本是3.4.8。 下载完成后解压缩。进入conf目录,创建zoo.cfg配置文件(可复制已有的zoo_sample.cfg修改)。 tickTime=2000 initLimit=10 syncLimit=5 dataDir=/tmp/zookeeper clientPort=2181 说明一下几个配置项的意义(initLimit和syncLimit暂时先不管,后面有说明): tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。 dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。 clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口

weblogic修改端口号

北慕城南 提交于 2019-11-29 22:41:55
因同事项目需要,特意搭建环境测试 修改端口号有两个方案: 1、 控制台直接修改 2、配置文件修改 控制台修改 当前端口号 8081 <2018-12-7 下午02时47分45,119秒 CST> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on 127.0.0.1:8081 for protocols iiop, t3, ldap, snmp, http.> <2018-12-7 下午02时47分45,120秒 CST> <Notice> <Server> <BEA-002613> <Channel "Default[2]" is now listening on 0:0:0:0:0:0:0:1:8081 for protocols iiop, t3, ldap, snmp, http.> <2018-12-7 下午02时47分45,130秒 CST> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.> <2018-12-7 下午02时47分45,139秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed

zookeeper客户端

匆匆过客 提交于 2019-11-29 22:15:38
session会话机制 client请求和服务端建立连接,服务端会保留和标记当前client的session,包含 session过期时间,sessionId ,然后服务端开始在session过期时间的基础上倒计时,在这段时间内,client需要向server发送心跳包,目的是然server重置session过期时间 使用quit命令,退出可端,但是server端的session不会立即消失,使用ls / 依然可以看到创建的临时节点 节点的类型: 持久节点,不加任何参数,默认创建的是持久节点 临时节点: 当客户端断开连接时,这个节点会消失 持久顺序节点: 父节点为他的第一级子节点维护一份时序,标记节点的创建顺序,这个标记其实就是一个数字后缀,作为新节点的名字,数字的范围就是整形的最大值(1024*1024) 临时顺序节点,同上. (临时节点不能再创建的节点) 创建节点时,可以指定每个节点的data信息,zookeeper默认每个节点的数量的最大上限是1M 常用命令 创建节点: 语法 : create /path data [zk: localhost:2181(CONNECTED) 2] create /changwu 1 Created /changwu [zk: localhost:2181(CONNECTED) 3] ls / [changwu, zookeeper]

Activiti基础教程-07

痴心易碎 提交于 2019-11-29 08:25:44
本文链接:https://blog.csdn.net/oChangWen/article/details/51910695 相关代码参考gihub:https://github.com/changwensir/Activiti/tree/master/ActivitiDemo1 一、Activiti 历史任务查询 实际工作流项目中,有一个功能叫做 历史任务查询。某一次流程的执行一共经历了多少个任务.我们其实查询的是历史任务实例表; 当然这个表的话,不管是已经完结的任务 还是正在执行的任务,都会记录下这个表里。Activiti给我们提供了一个接口 finished;加了之后 就是查询已经完结的任务; 同理还有一个接口unfinished 顾名思义,就是查询未完结的任务;当然这两个都不加,就是把所有任务都查询出来; OK我们上代码: /** * 历史任务查询 */ @Test public void historyTaskList(){ List<HistoricTaskInstance> list=processEngine.getHistoryService() // 历史任务Service .createHistoricTaskInstanceQuery() // 创建历史任务实例查询 .taskAssignee("java1234_小锋") // 指定办理人 .finished

java定时器Timer详解

假如想象 提交于 2019-11-28 18:16:52
Timer 是jdk 自身提供的定时器, 可使用于实现一些简单的定时任务,如在某一时刻执行一次任务或以固定时间间隔执行任务. 一个Timer 实例可调度多个TimerTask, 底层使用队列(TaskQueue)存储, 不能并发启动定时任务. 因此, 对于复杂的定时任务, 笔者推荐使用quartz. 1. Timer 常用API 默认情况下,Timer 创建的线程为用户线程, 如果想让其为守护进程的话, 创建时需要设置isDaemon 为true. 方法签名 方法描述 public Timer(String name) 构造方法, 创建定时器, 并指定线程名称. 以定时调度线程为用户线程 public Timer(boolean isDaemon) 构造方法, 创建定时器, isDaemon 设置为trues时表示以守护线程执行 public Timer(String name, boolean isDaemon) public void schedule(TimerTask task, long delay) 只调度一次, 延迟delay毫秒之后执行 public void schedule(TimerTask task, Date time) 只调度一次, 在具体时刻time 执行 public void schedule(TimerTask task, long delay,