zoukankan      html  css  js  c++  java
  • Java基础--多线程

    1.启动线程的注意事项

    无论何种方式,启动一个线程,就要给它一个名字!这对排错诊断
    系统监控有帮助。否则诊断问题时,无法直观知道某个线程的用途。

    启动线程的试:

    a.

    Thread thread = new Thread("thread name") {
    public void run() {
    // do xxx
    }
    };
    thread.start();

    b.

    public class MyThread extends Thread {
    public MyThread() {
    super("thread name");
    }
    public void run() {
    // do xxx
    }
    }
    MyThread thread = new MyThread ();
    thread.start();

    c.

    Thread thread = new Thread() {
    public void run() {
    // do xxx
    }
    };
    thread.setName("thread name");
    thread.start();

    d.

    Thread thread = new Thread(task); // 传入任务
    thread.setName(“thread name");
    thread.start();

    e.

    Thread thread = new Thread(task, “thread name");
    thread.start();

    2.要响应线程中断

    程序应该对线程中断作出恰当的响应。

    a.

    Thread thread = new Thread("interrupt test") {
    public void run() {
    for (;;) {
    doXXX();
    if (Thread.interrupted()) {
    break;
    }
    }
    }
    };
    thread.start();

    b.

    public void foo() throws InterruptedException {
    if (Thread.interrupted()) {
    throw new InterruptedException();
    }
    }

    c.

    Thread thread = new Thread("interrupt test") {
    public void run() {
    for (;;) {
    try {
    doXXX();
    } catch (InterruptedException e) {
    break;
    } catch (Exception e) {
    // handle Exception
    }
    }
    }
    };
    thread.start();

  • 相关阅读:
    hadoop hdfs总结 NameNode部分 概述
    最近近况
    hadoop hdfs总结 NameNode部分 1
    rsync 使用
    SmartHost
    hadoop unit test 问题
    git 使用记录
    java 类内存分配计算
    hadoop hdfs总结 NameNode部分 2
    0417 430调试技巧
  • 原文地址:https://www.cnblogs.com/jasonboboblog/p/12783853.html
Copyright © 2011-2022 走看看