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();

  • 相关阅读:
    Django使用Mysql已存在数据表的方法
    ajax加载验证码这样不断刷新的文件无法刷新问题
    flask ajax发送请求返回400
    flask启动找不到路由问题
    Python开发之路
    文件读写的简单应用
    sql 简单查询修改
    kafka 查询 SQL Query
    kafka条件查询excel拼接
    shelve模块
  • 原文地址:https://www.cnblogs.com/jasonboboblog/p/12783853.html
Copyright © 2011-2022 走看看