186day(线程和中断线程)

原创 2018年04月14日 23:27:03

陈国佳总结《2018年4月14日》【连续186天】

标题:线程和中断线程;

内容:
1.

下面是在一个单独的线程中执行一个任务的简单过程:
1 ) 将任务代码移到实现了Runnable 接口的类的run 方法中。这个接口非常简单, 只有
一个方法:
public interface Runnable
{
void runO;
}
由于Runnable 是一个函数式接口,可以用lambda 表达式建立一个实例:
Runnable r = 0 -> { task code };
2 ) 由Runnable 创建一个Thread 对象:
Thread t = new Thread(r);
3 ) 启动线程:
t.start();


•ThreadCRunnable target )
构造一个新线程, 用于调用给定目标的nm() 方法。
• void start( )
启动这个线程, 将引发调用mn() 方法。这个方法将立即返回, 并且新线程将并发运行。
參void run( )
调用关联Runnable 的run 方法。


当对一个线程调用interrupt 方法时,线程的中断状态将被置位。这是每一个线程都具有
的boolean 标志。每个线程都应该不时地检査这个标志, 以判断线程是否被中断。
要想弄清中断状态是否被置位, 首先调用静态的Thread.currentThread 方法获得当前线
程, 然后调用islnterrupted 方法:
while (!Thread.currentThread().islnterrupted() && more work to do)
{
do more work
}


•在catch 子句中调用Thread.currentThread().interrupt() 来设置中断状态。于是,调用者
可以对其进行检测。
void mySubTaskO
{
try { sleep(delay); }
catch (InterruptedException e) { Thread.currentThreadO -interruptO; }
•或者, 更好的选择是, 用throws InterruptedException 标记你的方法, 不采用try 语句
块捕获异常。于是, 调用者(或者, 最终的run 方法)可以捕获这一异常。
void mySubTaskO throws InterruptedException

{

sleep(delay) ;
}

正确中断java线程

不提倡的stop()方法 臭名昭著的stop()停止线程的方法已不提倡使用了,原因是什么呢? 当在一个线程对象上调用stop()方法时,这个线程对象所运行的线程就会立即停止,并抛出特殊的ThreadD...
  • oscar999
  • oscar999
  • 2007-08-23 11:25:00
  • 10021

并发编程学习总结(三) : 线程的中断详解

如果你使用过杀毒软件,可能会发现全盘杀毒太耗时间了,这时你如果点击取消杀毒按钮,那么此时你正在中断一个运行的线程。 java为我们提供了一种调用interrupt()方法来请求终止线程的方法,下面我们...
  • u011784767
  • u011784767
  • 2016-05-16 20:51:44
  • 4265

Java中如何中断线程?

这道题几乎是面试必问题目。如果不知道如何圆满的回答,只能答interrupt()方法了。但是一旦被问,interrupt方法并不一定能中断线程啊,整个人就懵了。经查资料以及对线程的进一步了解,百度知道...
  • ada_dengpan
  • ada_dengpan
  • 2016-03-19 00:08:19
  • 838

中断线程详解

在JAVA中,曾经使用stop方法来停止线程,然而,该方法具有固有的不安全性,因而已经被抛弃(Deprecated)。那么应该怎么结束一个进程呢?官方文档中对此有详细说明:《为何不赞成使用 Thr...
  • Erica_1230
  • Erica_1230
  • 2016-05-28 23:06:59
  • 582

通俗易懂——线程,进程与中断调度

先说两个概念,因为这两个概念在下面会高频次的出现,请务必理解: 1,进程:每个正在运行的EXE就可以视为一个进程。进程独占内存空间,不与其他进程共享。进程不能直接供 CPU计算。 2,线程:每...
  • dark_tone
  • dark_tone
  • 2016-09-21 03:22:18
  • 1488

多线程中断机制

在 java中启动线程非常容易,大多数情况下是让一个线程执行完自己的任务然后自己停掉。一个线程在未正常结束之前, 被强制终止是很危险的事情. 因为它可能带来完全预料不到的严重后果,比如会带着自己所持有...
  • pangpang123654
  • pangpang123654
  • 2017-08-18 12:02:55
  • 10718

linux的中断线程化实现

2.6.25.8内核实现了中断线程化,内核为每一个中断向量建立了一个中断线程,具体就是在结构irq_desc中增加了一个task_struct来代表这个线程: struct irq_desc { ...
  • dog250
  • dog250
  • 2010-02-09 20:25:00
  • 4321

Java之多线程interrupt中断线程的三种方法

方法一: @Override public void run(){ for(int i = 0; i < 100; i++){ System.out.println(this....
  • Genius_in_the_left
  • Genius_in_the_left
  • 2017-04-19 10:44:04
  • 764

linux 中断线程化

为什么要进行中断线程化? 在 Linux 中,中断具有最高的优先级。不论在任何时刻,只要产生中断事件,内核将立即执行相应的中断处理程序,等到所有挂起的中断和软中断处理完毕后才能执行正常的任务,因此有...
  • viewsky11
  • viewsky11
  • 2017-05-27 12:24:01
  • 1223

理解java线程的中断(interrupt)

一个线程在未正常结束之前, 被强制终止是很危险的事情. 因为它可能带来完全预料不到的严重后果...
  • canot
  • canot
  • 2016-04-07 17:39:33
  • 11090
收藏助手
不良信息举报
您举报文章:186day(线程和中断线程)
举报原因:
原因补充:

(最多只允许输入30个字)