try

如何停止JAVA线程

我的未来我决定 提交于 2020-01-06 00:35:28
本文以转移至本人的个人博客,请多多关注! 本文以转移至本人的个人博客,请多多关注! 本文以转移至本人的个人博客,请多多关注! http://blog.csdn.net/anhuidelinger/article/details/11746365 终止线程的三种方法 有三种方法可以使终止线程。 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。 3. 使用interrupt方法中断线程。 1. 使用退出标志终止线程 当run方法执行完后,线程就会退出。但有时run方法是永远不会结束的。如在服务端程序中使用线程进行监听客户端请求,或是其他的需要循环处理的任务。 在这种情况下,一般是将这些任务放在一个循环中,如while循环。如果想让循环永远运行下去,可以使用while(true){……}来处理。但要想使 while循环在某一特定条件下退出,最直接的方法就是设一个boolean类型的标志,并通过设置这个标志为true或false来控制while循环 是否退出。下面给出了一个利用退出标志终止线程的例子。 package chapter2; public class ThreadFlag extends Thread { public

以JavaWeb实现员工信息的登记

删除回忆录丶 提交于 2020-01-05 13:31:09
1. 2.代码 Bean.java package com.bean; public class Bean { private String name; private String sex; private String nation;//民族 private String time; private int age; private String kind;//政治面貌 private String serve;//服务类别 public Bean() {} public Bean(String name, String sex, String nation, String time, int age, String kind, String serve) { super(); this.name = name; this.sex = sex; this.nation = nation; this.time = time; this.age = age; this.kind = kind; this.serve = serve; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() {

期末测试javaweb,考勤系统后台

為{幸葍}努か 提交于 2020-01-05 10:58:55
package com.hjf.dao; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.hjf.entity.Course; import com.hjf.util.DBUtil; /** * 课程Dao * Dao层操作数据 * @author Hu * */ public class CourseDao { /** * 添加 * @param course * @return */ public static boolean add(Course course) { String sql = "insert into bumeng(departmentid,department) values('" + course.getDepartmentid() + "','" + course.getDepartment() + "')"; //创建数据库链接 Connection conn = DBUtil.getConn(); Statement state = null;

finally关键字

给你一囗甜甜゛ 提交于 2020-01-05 00:32:36
finally:用在异常处理的最后一个语句块 无论是否产生异常都要被执行~~~ Java代码 public final class FinallyTest { public static void main(String[] args) { try { throw new NullPointerException(); } catch (NullPointerException e) { System.out.println( "程序抛出了异常" ); } finally { System.out.println( "执行了finally语句块" ); } } } Java中finally关键字的使用 与其他语言的模型相比,finally 关键字是对 Java 异常处理模型的最佳补充。finally 结构使代码总会执行,而不管有无异常发生。使用 finally 可以维护对象的内部状态,并可以清理非内存资源。 如果没有 finally,您的代码就会很费解。例如,下面的代码说明,在不使用 finally 的情况下您必须如何编写代码来释放非内存资源: import java.net.*; import java.io.*; class WithoutFinally { public void foo() throws IOException { //在任一个空闲的端口上创建一个套接字

文件检测

旧巷老猫 提交于 2020-01-04 15:52:28
# -*- coding: utf-8 -*- #use: python file_check.py ./ import os import hashlib import shutil import ntpath import time CWD = os.getcwd() FILE_MD5_DICT = {} # 文件MD5字典 ORIGIN_FILE_LIST = [] # 特殊文件路径字符串 Special_path_str = 'drops_JWI96TY7ZKNMQPDRUOSG0FLH41A3C5EXVB82' bakstring = 'bak_EAR1IBM0JT9HZ75WU4Y3Q8KLPCX26NDFOGVS' logstring = 'log_WMY4RVTLAJFB28960SC3KZX7EUP1IHOQN5GD' webshellstring = 'webshell_WMY4RVTLAJFB28960SC3KZX7EUP1IHOQN5GD' difffile = 'diff_UMTGPJO17F82K35Z0LEDA6QB9WH4IYRXVSCN' Special_string = 'drops_log' # 免死金牌 UNICODE_ENCODING = "utf-8" INVALID_UNICODE_CHAR_FORMAT = r"\?%02x" #

Java多线程基础——Lock类

青春壹個敷衍的年華 提交于 2020-01-04 06:33:31
之前已经说道,JVM提供了synchronized关键字来实现对变量的同步访问以及用wait和notify来实现线程间通信。在jdk1.5以后,JAVA提供了Lock类来实现和synchronized一样的功能,并且还提供了Condition来显示线程间通信。 Lock类是Java类来提供的功能,丰富的api使得Lock类的同步功能比synchronized的同步更强大。本文章的所有代码均在 Lock类例子的代码 本文主要介绍一下内容: Lock类 Lock类其他功能 Condition类 Condition类其他功能 读写锁 Lock类 Lock类实际上是一个接口,我们在实例化的时候实际上是实例化实现了该接口的类 Lock lock = new ReentrantLock(); 。用synchronized的时候,synchronized可以修饰方法,或者对一段代码块进行同步处理。 前面讲过,针对需要同步处理的代码设置对象监视器,比整个方法用synchronized修饰要好。Lock类的用法也是这样,通过Lock对象lock,用 lock.lock 来加锁,用 lock.unlock 来释放锁。在两者中间放置需要同步处理的代码。 具体的例子如下: public class MyConditionService { private Lock lock = new

spring boot ,spring cloud 下载resource 目录下的excel模板文件

感情迁移 提交于 2020-01-04 03:01:52
/** * 下载模板 * @throws Exception */ @RequestMapping(value = "/downloadExcel") @ResponseBody public void downloadExcel(HttpServletResponse response, HttpServletRequest req) { try { ClassPathResource classPathResource = new ClassPathResource("template/impCfmd.xls"); InputStream inputStream = classPathResource.getInputStream(); response.setContentType("application/zip"); OutputStream out = response.getOutputStream(); response.setHeader("Content-Disposition", "attachment; filename=impCfmd.xls"); int b = 0; byte[] buffer = new byte[1024*1024]; while (b != -1) { b = inputStream.read(buffer); if(b!=-1)

Java多线程8:wait()和notify()/notifyAll()

北城余情 提交于 2020-01-04 01:56:40
轮询 线程本身是操作系统中独立的个体,但是线程与线程之间不是独立的个体,因为它们彼此之间要相互通信和协作。 想像一个场景,A线程做int型变量i的累加操作,B线程等待i到了10000就打印出i,怎么处理?一个办法就是,B线程while(i == 10000),这样两个线程之间就有了通信,B线程不断通过轮训来检测i == 10000这个条件。 这样可以实现我们的需求,但是也带来了问题:CPU把资源浪费了B线程的轮询操作上,因为while操作并不释放CPU资源,导致了CPU会一直在这个线程中做判断操作。如果可以把这些轮询的时间释放出来,给别的线程用,就好了。 wait/notify 在Object对象中有三个方法wait()、notify()、notifyAll(),既然是Object中的方法,那每个对象自然都是有的。如果不接触多线程的话,这两个方法是不太常见的。下面看一下前两个方法: 1、wait() wait()的作用是使当前执行代码的线程进行等待,将当前线程置入"预执行队列"中,并且wait()所在的代码处停止执行,直到接到通知或被中断。 在调用wait()之前,线程必须获得该对象的锁,因此只能在同步方法/同步代码块中调用wait()方法 。 2、notify() notify()的作用是,如果有多个线程等待,那么线程规划器随机挑选出一个 wait的线程,对其发出通知notify

Java异常和Log4j

本小妞迷上赌 提交于 2020-01-03 21:21:56
异常和Log4j: 一、异常: 异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序。 引发多种类型的异常: 1、排列 catch 语句的顺序:先子类后父类 2、发生异常时按顺序逐个匹配。 3、只执行第一个与异常类型匹的 catch 语句。 try-catch 块中存在 return 语句,是否还执行 finally 块,如果执行,说出执行顺序? 执行。先 try - catch - finally - return try-catch- finally 块中, finally 块唯一不执行的情况是什么? System . exit (1)。 二、异常处理: 关键字:try。catch。finally。 throw。(手动抛出异常 ) throws。(声明方法可能要抛出的各种异常 。) 捕获异常 。 声明异常 。 抛出异常 。 常见的异常类型:Exception 异常层次结构的父类。 ArithmeticException。算术错误情形,如以零作除数。 ArrayIndexOutOfBoundsException 。数组下标越界。 NullPointerException。尝试访问 null 对象成员。 ClassNotFoundException。不能加载所需的类。 IllegalArgumentException。方法接收到非法参数。

Python之异常处理

人走茶凉 提交于 2020-01-03 17:35:47
文章目录 一、异常 1、try…except…finally…语句 2、函数的错误 3、主动抛出异常 一、异常 在程序运行过程中影响程序正常运行的内容, 称为异常. 1、try…except…finally…语句 except语句不一定会执行, 只有在try语句中出现报错时, 才会执行. 2、函数的错误 函数的错误:一级一级向上去找 最终会将异常传递到主函数里面去 3、主动抛出异常 来源: CSDN 作者: 马婧瑜 链接: https://blog.csdn.net/weixin_43936969/article/details/103820338