Java多线程推荐使用的停止方法和暂停方法
判断线程结束和让线程结束
package cn.lonecloud.Thread.study;
/**
* 用于循环1000次的线程
* @Title: Run1000Thread.java
* @Package cn.lonecloud.Thread.study
* @Description:
* @author lonecloud
* @date 2016年8月14日 下午11:06:07
*/
public class Run1000Thread extends Thread{
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
System.out.println(i);
if (this.interrupted()) {//用于判断线程是否已经结束
try {
throw new InterruptedException();//用于停止线程
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
暂停线程和恢复线程
package cn.lonecloud.Thread.study.resume;
import org.apache.log4j.Logger;
public class MainTest {
public static Logger logger=Logger.getLogger(MainTest.class);
public static void main(String[] args) throws Exception {
ResumeThread thread=new ResumeThread();
thread.start();
logger.debug("开始");
thread.sleep(1000);
thread.suspend();//获取此线程停止
logger.debug("我是休眠");
thread.sleep(1000);
thread.resume();//获取线程继续
logger.debug("我是启动");
}
}
线程类
package cn.lonecloud.Thread.study.resume;
import org.apache.log4j.Logger;
public class ResumeThread extends Thread{
public static Logger logger=Logger.getLogger(ResumeThread.class);
@Override
public void run() {
logger.debug("开始");
System.out.println("Hello world");
}
}
Java多线程推荐使用的停止方法和暂停方法的更多相关文章
- “全栈2019”Java多线程第八章:放弃执行权yield()方法详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java多线程第六章:中断线程interrupt()方法详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java多线程第五章:线程睡眠sleep()方法详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- java多线程二之线程同步的三种方法
java多线程的难点是在:处理多个线程同步与并发运行时线程间的通信问题.java在处理线程同步时,常用方法有: 1.synchronized关键字. 2.Lock显示加锁. 3.信号量Se ...
- Java多线程循环打印ABC的5种实现方法
https://blog.csdn.net/weixin_39723337/article/details/80352783 题目:3个线程循环打印ABC,其中A打印3次,B打印2次,C打印1次,循环 ...
- java——多线程——单例模式的static方法和非static方法是否是线程安全的?
单例模式的static方法和非static方法是否是线程安全的? 答案是:单例模式的static方法和非static方法是否是线程安全的,与单例模式无关.也就说,如果static方法或者非static ...
- Java多线程,判断其他线程是否结束的方法
方法1:通过Thread类中的isAlive()方法判断线程是否处于活动状态. 线程启动后,只要没有运行完毕,都会返回true. [注]如果只是要等其他线程运行结束之后再继续操作,可以执行t.join ...
- Java多线程(五)停止线程 在沉睡中停止线程
在沉睡中停止线程会抛出异常 public class SleepInterruptDemo extends Thread { public void run() { super.run(); try ...
- Java多线程(五)停止线程 interrupt
调用interrupt方法仅仅是在当前线程中打了一个停止的标记,并不是真正停止线程. this.interrupted() :测试当前线程是否已经中断,执行后具有将状态标志清除为false的功能 is ...
随机推荐
- Oracle积累
Oracle积累 1 用To_char()转换带小数的数值. 例如:0.125 取两位小数. To_char(0.125,'FM990.99') -> 0.13 注: 格 ...
- JavaScript Date 时间对象方法
Date(日期/时间对象) Date 操作日期和时间的对象 Date.getDate( ) 返回一个月中的某一天 Date.getDay( ) 返回一周中的某一天 Date.getFullYear( ...
- 2017-06-28(passwd 主要组与附属组 gpasswd newgrp groups)
passwd passwd -l 用户名 (锁定用户) passwd -u 用户名 (解锁用户) passwd -d 用户名 (清楚用户密码) 主要组与附属组 一个用户可以同时属于多个组,其中一个 ...
- Python--socketserve源码分析(二)
BaseServer::self.process_request(request, client_address) 实现原理: 在类的继承关系中,当子类中没有相应的方法时就会去父类中寻找, 当继承多个 ...
- 一步一步从原理跟我学邮件收取及发送 8.EHLO 命令详解
我们在上一篇中解决了接收一行命令的问题后,就可以来具体的分析邮件发送过程中涉及到的 SMTP 协议内容了. 首先来看通讯过程中的第一个内容:服务器在客户端连接上来后会主动发送一个问好的信息,所以这第一 ...
- struts2 添加请求后缀的3种方式
第一种方式在struts.xml文件中添加 <constant name="struts.action.extension" value="">&l ...
- 学会配置nginx
一.作为一名开发人员,大家可能经常会用到服务器,但是一般线上的服务器可能都是公司公用的,而且线上的服务器一般也不是能随随便便给个人用的,所以部署本地服务器看来是一遍必不可少的事情和能力呀,所以,ngi ...
- Git分支高级管理[四]
标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 切换分支 git checkout 撤销对文件的修改 git checkout -- ...
- mybatis-spring最新版下载地址
mybatis-spring最新版下载地址: http://mvnrepository.com/artifact/org.mybatis/mybatis-spring/1.2.3 mybatis-sp ...
- 浏览器解析js的顺序
浏览器在读取HTML文件的时候,只有当遇到