知识大全 Java2入门经典教程 11.1 了解线程[6]

Posted

篇首语:鸟贵有翼,人贵有志。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java2入门经典教程 11.1 了解线程[6]相关的知识,希望对你有一定的参考价值。

Java2入门经典教程 11.1 了解线程[6]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    试试看 中断一个线程

public static void main(String[] args)      // Create three threads    Thread first = new TryThread( Hopalong Cassidy L);    Thread second = new TryThread( Marilyn Monroe L);    Thread third = new TryThread( Slim Pickens L);

    System out println( Press Enter when you have had enough \\n );    first start();                      // Start the first thread    second start();                     // Start the second thread    third start();                      // Start the third thread    try          System in read();                 // Wait until Enter key pressed      System out println( Enter pressed \\n );        catch (IOException e)               // Handle IO exception          System out println(e);            // Output the exception        System out println( Ending main() );    return; 

    现在程序将产生如下输出

    Press Enter when you have had enough…    Slim Hopalong Marilyn Caxsidy    Hopalong Monrog    Marily Cassidy    Hopalong Pickens    Slim Cassidy    Hopalong Monroe    Marilyn    Enter prossed…    Ending main()    Marilyn Monroe java lang

    如何工作

    由于当你键入回车键后main()方法对每个线程调用了interrupt()方法 每个线程中调用sleep()方法注册这样一个事实 线程被中断并抛出一个InterruptedException 这由run()方法中的catch块捕获到并产生你看到的新输出 因为catch块在while循环的外部 因此这个线程调用的run()方法返回并且每个线程终止

    通过对线程调用isInterrupted()方法你可以检查一个线程是否被中断 如果对该线程诡用了interrupt() 则返回true 由于这是个实例方法 你可以用这种方法判定在一个线程中是否中断了另一个线程 例如 main()中你可以写成

    if (first isInterrupted ())    sydtem out println ( First thread been interrupted );

    注意 这只能判定是否通过对线程调用interrupt()设置了中断标志并不能判定线程是否仍在运行 一个线程可以有自己的中断标志设置和继续执行 它不会因interrupt()的调用而被迫终止 它测试当前执行的线程是否被中断 如果是 它在当前Thread对象中清除中断标志并返回true

    实例方法Interrupted()对线程的中断标志没有什么影响 如果标志被设置 保留此设置 但是 Thread类中的静态方法interrupted()是不同的 它测试是否当前执行的线程被中断 如果是它清除当前Thread对象中的中断标志并返回true

    当抛出一个InterruptedException异常时 在线程中注册中断的标志被清除 因此对islnterrupted()interrupted()的调用将返回false

cha138/Article/program/Java/gj/201311/27758

相关参考

知识大全 Java2入门经典教程 11.1 了解线程[4]

Java2入门经典教程11.1了解线程[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.1 了解线程[3]

Java2入门经典教程11.1了解线程[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.1 了解线程[2]

Java2入门经典教程11.1了解线程[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.1 了解线程[1]

Java2入门经典教程11.1了解线程[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.1 了解线程[8]

Java2入门经典教程11.1了解线程[8]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.1 了解线程[7]

Java2入门经典教程11.1了解线程[7]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.2 管理线程[6]

Java2入门经典教程11.2管理线程[6]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.2 管理线程[4]

Java2入门经典教程11.2管理线程[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.2 管理线程[3]

Java2入门经典教程11.2管理线程[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java2入门经典教程 11.2 管理线程[2]

Java2入门经典教程11.2管理线程[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs