当前位置: 首页 > 编程日记 > 正文

java的线程中断

在java中中断线程可以使用interrupt()函数。此函数虽然不能终止线程的运行,但是可以改变线程的状态为true

即:isInterrupted()的值返回为true

注意:当函数调用了已经被阻塞的线程后,被阻塞的线程将会接收到一个InterruptedException异常。即当前线程即可终止。

例如:

package TestThread.ThreadSynchronized;public class TestWaitAll {public static void main(String[] args) {// 创建线程对象Test1 test1 = new Test1();// 创建线程Thread t = new Thread(test1, "线程1");Thread t1 = new Thread(test1, "线程2");Thread t2 = new Thread(test1, "线程3");Thread t3 = new Thread(test1, "线程4");// 这是唤醒线程Test2 test2 = new Test2(test1, "唤醒线程");t.start();t1.start();t2.start();t2.interrupt();// 中断线程t3.start();try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}// 启动唤醒线程test2.start();}
}class Test1 implements Runnable {public void run() {synchronized (this) {// 当被阻塞的线程调用了interrupt后将会发生异常try {this.wait();System.out.println(Thread.currentThread().getName() + ":我没有被中断,我可以执行到!");} catch (InterruptedException e) {System.out.println(Thread.currentThread().getName() + ":被中断了!");}}}
}/*** @author CHAI015 生成唤醒类*/
class Test2 extends Thread {/*** Test1 为唤醒对象 name 为线程名称*/private Test1 test1;String name;/*** @param test1唤醒对象* @param name唤醒名称*/public Test2(Test1 test1, String name) {super(name);this.name = name;this.test1 = test1;}public void run() {synchronized (test1) {test1.notifyAll();// 针对当前对象执行唤醒所有线程的操作System.out.println(Thread.currentThread().getName() + ":唤醒线程执行成功!");}}
}

运行结果为:

转载于:https://www.cnblogs.com/chaiyesong/p/6610715.html

相关文章:

验证表单不为空

有问题可以扫码加我微信&#xff0c;有偿解决问题。承接小程序开发。 微信小程序开发交流qq群 173683895 、 526474645 &#xff1b; 正文&#xff1a; 目的 : 验证表单是否为空,如果其中一个input的值为空就alert提示它的 name的值不能为空 , <!DOCTYPE html> &…

java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**

原文出处&#xff1a;http://cmsblogs.com/?p1412 在上篇博文&#xff08;java中文乱码解决之道&#xff08;一&#xff09;—–认识字符集&#xff09;中&#xff0c;LZ简单介绍了主流的字符编码&#xff0c;对各种编码都是点到为止&#xff0c;以下LZ将详细阐述字符集、字符…

swift视图容器_如何使用IBDesignable在Swift中创建漂亮的,可重复使用的渐变视图...

swift视图容器by Lee Dowthwaite通过李道思韦特 如何使用IBDesignable在Swift中创建漂亮的&#xff0c;可重复使用的渐变视图 (How to create a beautiful, reusable gradient view in Swift with IBDesignable) This tutorial will demonstrate how to create a versatile, I…

android 以不规则图片为边框切割另外图片

转自&#xff1a;http://blog.sina.com.cn/s/blog_474928c90101dkvf.html 最近工作上遇到了一个将一个图片按照相框进行裁剪的问题&#xff0c;花了一个下午研究了下&#xff0c;在此整理一下&#xff0c;以便后用。 &#xff08;相片&#xff09; …

L3-010. 是否完全二叉搜索树

L3-010. 是否完全二叉搜索树 时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越将一系列给定数字顺序插入一个初始为空的二叉搜索树&#xff08;定义为左子树键值大&#xff0c;右子树键值小&#xff09;&#xff0c;你需要判断最后的树是否一棵完全二…

[微信小程序]计算自己手机到指定位置的距离

微信小程序开发交流qq群 581478349 承接微信小程序开发。扫码加微信。 正文&#xff1a; 目的: 根据目的地的坐标计算自己手机的位置离目的地的距离的 核心思路: 后续操作必须等所有异步请求都返回了才能继续 使用Promise() const qqmap require("../../utils/qqma…

ai css 线条粗细_如何训练AI将您的设计模型转换为HTML和CSS

ai css 线条粗细by Emil Wallner埃米尔沃尔纳(Emil Wallner) 如何训练AI将您的设计模型转换为HTML和CSS (How you can train an AI to convert your design mockups into HTML and CSS) Within three years, deep learning will change front-end development. It will increa…

Android Layer List 使用实现实例

Layer List是Anroid中的一种图形的方式&#xff0c;它是通过叠加若干张图片的方式来形成最终的图片&#xff0c;最终的图片在代码中表现为一个LayerDrawable对象。 效果图&#xff1a;第一张是默认显示&#xff0c;第二张为按改变按钮后的图 下面通过一个实例来说明&#xff1a…

Promise - js异步控制神器

微信小程序开发交流qq群 581478349 承接微信小程序开发。扫码加微信。 正文&#xff1a; 首先给来一个简单的demo看看Promise是怎么使用的&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><script type"text/ja…

lab_2 Selenium

1、安装SeleniumIDE插件 添加组件-搜索Selenium IDE 安装后重启浏览器可以看到工具中存在此IDE 2、学会使用SeleniumIDE录制脚本和导出脚本 工具--Selenium IDE&#xff0c;得到界面如图 以百度搜索天津大学为例&#xff0c;如下图 红色的是录制按钮&#xff0c;base url是当前…

android进度指示器_等待的痛苦—浏览进度指示器地狱的7个级别

android进度指示器by Mike Zetlow由Mike Zetlow 等待的痛苦—浏览进度指示器地狱的7个级别 (The Pain of Waiting — Navigating the 7 Levels of Progress Indicator Hell) How much hell are you willing to put your users through?您愿意让用户承受多少痛苦&#xff1f; …

Oracle基础 动态SQL语句

一、静态SQL和动态SQL的概念。 1、静态SQL 静态SQL是我们常用的使用SQL语句的方式&#xff0c;就是编写PL/SQL时&#xff0c;SQL语句已经编写好了。因为静态SQL是在编写程序时就确定了&#xff0c;我们只能使用SQL中的DML和事务控制语句&#xff0c;但是DDL语句&#xff0c;以及…

dataTables常用参数

一、新版本和老版本的区别 新版本的改进&#xff1a;https://datatables.net/new/1.10 新老版本参数变化列表&#xff1a;http://datatables.club/upgrade/1.10-convert.html 老版本参数列表&#xff1a; http://legacy.datatables.net/usage/features http://legacy.datatable…

[微信小程序]获取用户当前的城市

有问题可以扫码加我微信&#xff0c;有偿解决问题。承接小程序开发。 微信小程序开发交流qq群 173683895 、 526474645 &#xff1b; 正文&#xff1a; // 获取用户当前位置的名称和城市 util.jsfunction location() {// 实例化腾讯位置服务里面微信小程序JS SDK的API核心…

构建一个react项目_您想要了解更多有关React的内容吗? 让我们构建一个游戏,然后玩。...

构建一个react项目by Samer Buna通过Samer Buna 您想要了解更多有关React的内容吗&#xff1f; 让我们构建一个游戏&#xff0c;然后玩。 (Do you want to learn more about React? Let’s build — and then play — a game.) Update: This article is now part of my book …

vijos 1476 旅游规划题解

题目链接&#xff1a;https://vijos.org/p/1476 解&#xff1a;因为这一定是一棵树&#xff0c;所以我们多画几次图&#xff0c;就会发现所有的最长路径中心点都一样&#xff0c;且中心点把这条最长路径分成两段等长的路。 那么做法就很简单啦&#xff0c;先求出图的最长路径长…

JQ实现导航效果(附效果图)

微信小程序开发交流qq群 581478349 承接微信小程序开发。扫码加微信。 正文&#xff1a; 为了不浪费大家时间, 首先来一张效果图看是不是你需要的 下面是完整的代码和详细的注释. 直接copy就可以用了. html <div id"tab" class"tab"><div…

.NET如何从配置文件中获取连接字符串

一.设置配置文件 <configuration><!--在configuration下创建一个connectionStrings--><connectionStrings><!--以类似键值对的形式&#xff0c;设置好名字和连接字符串--><add name"连接名" connectionString"连接字符串"/>…

javascript 代码_如何使您JavaScript代码保持简单并提高其可读性

javascript 代码by Leonardo Lima莱昂纳多利马(Leonardo Lima) 如何使您JavaScript代码保持简单并提高其可读性 (How to keep your JavaScript code simple and increase its readability) After a few years working almost exclusively with Ruby on Rails and some jQuery,…

《转》Python学习(14)-对文件的操作(一)

转自 http://www.cnblogs.com/BeginMan/p/3166644.html 一、文件对象 我理解的文件对象就是一个接口&#xff0c;通过这个接口对文件进行相关操作。 《Python 核心编程》上说的很晦涩&#xff0c;这里没有深刻理解到&#xff0c;希望有人能解释给我听。 >>> f open(d…

[微信小程序]组件化开发,以一个自定义模块框组件当做示例(附完整示例代码和效果图)

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 正文&#xff1a; 自定义组件我把它分为简单的三个步骤, 1.创建组件 --- 2.编写组件 --- 3.调用,使用组件. 第一步:创建组件 创建一个modal文件夹,里面包含 josn.wxml.wcss.js 四个文件,然后在jo…

openstack安装在虚拟机上重启之后无法启动问题

http://www.byywee.com/page/M0/S931/931767.html 运行rejoin-stack.sh脚本的核心&#xff1a; exec screen -c $TOP_DIR/stack-screenrc stack-screenrc文件存储启动的信息&#xff1a; 例如trove的启动 screen -t tr-api bash stuff "/usr/local/bin/trove-api --config…

让我们讨论一下变量,以及为什么要在JavaScript中使用它们。

by Zell Liew由Zell Liew 让我们讨论一下变量&#xff0c;以及为什么要在JavaScript中使用它们。 (Let’s talk about variables — and why you should use them in JavaScript.) The main purpose of coding is to solve problems. For example, what happens when you clic…

Services(服务)

开启服务有两种方式&#xff1a; 如果不会可以看老师的百度音乐盒的案例1、start方式&#xff1a;start方式的生命周期&#xff1a;*服务只会被开启一次&#xff0c;直到用户手动停止 服务才会被销毁*开启需要调用startService 会执行onCreate(),onStartCommand() *注&…

[敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum

[敏捷开发实践]&#xff08;2&#xff09; 用于开发和维持复杂产品的敏捷开发框架Scrum 1&#xff0c;Scrum概述 上篇中提到敏捷开发有两种主流的方法&#xff0c;一个是XP&#xff0c;另一个是Scrum&#xff0c;本篇简要介绍Scrum方法。Scrum是一套开发和维护复杂产品的框架或…

js 实现多选框(复选框) 和单选框,下拉框功能完整示例代码附效果图

<!DOCTYPE html> <html><head><meta charset"utf-8" /><script src"http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script><title>单选框,复选框,下拉菜单简单示例</title></head…

ruby on rails_我成为了Ruby on Rails和React的贡献者,你也可以

ruby on railsI am really grateful to have contributed to a few open source projects, including two I currently use on a regular basis: Ruby on Rails and React.我非常感谢为一些开源项目做出了贡献&#xff0c;其中包括我目前定期使用的两个项目&#xff1a; Ruby o…

MySQL加密算法

1.不可逆加密&#xff1a; PASSWORD()&#xff0c;ENCRYPT(&#xff0c;)&#xff0c;MD5()&#xff0c;SHA5()。 2.可逆的加密算法&#xff1a; ENCODE(,) DECODE(,)&#xff1a;加密解密字符串。该函数有两个参数&#xff1a;被加密或解密的字符串和作为加密或解密基础的密…

js回调函数和函数带参数的使用示例

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 //demo1 <html><head><meta charset"UTF-8"><script src"http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script></head>&…

mvc-3模型和数据(1)

MVC和命名空间 var User function(atts) {this.attribute atts || {}; } //和具体user相关的方法 User.prototype.destroy function() {}; //和具体user不相关的函数和变量 User.fetchRemove function() {}; var user new User({name:jinks}); user.destroy();构建对象关系…