Java多线程(第七章)

原创 2016年05月31日 23:29:05

1. 线程的状态

  • interrupted静态方法:测试当前线程(current thread)是否是中断状态,执行后将状态标识清除,置为false。
  • isInterrupted实例方法: 测试线程Thread对象(this thread)是否是中断状态,不会清除标识状态。
1. BLOCKED          阻塞
Thread state for a thread blocked waiting for a monitor lock. 
2. NEW              新建
Thread state for a thread which has not yet started. 
3. RUNNABLE         运行或就绪
Thread state for a runnable thread. 
4. TERMINATED       终止
Thread state for a terminated thread. 
5. TIMED_WAITING    有限等待
Thread state for a waiting thread with a specified waiting time. 
6. WAITING          无限等待
Thread state for a waiting thread. 

这里写图片描述

public class TestThread {

    public static void main(String[] args) throws InterruptedException {
        MyThread thread1 = new MyThread();
        thread1.setName("thread1");
        System.out.println("thread1状态为:" + thread1.getState());
        thread1.start();
        System.out.println("thread1状态为:" + thread1.getState());
        Thread.sleep(1000);
        System.out.println("thread1状态为:" + thread1.getState());
    }
}


class MyThread extends Thread {

    public MyThread() {
        System.out.println("进入MyThread构造方法的线程为:" + Thread.currentThread().getName());
    }

    @Override
    public void run() {
        System.out.println("当前线程为:" + Thread.currentThread().getName() + "  线程的状态为:"
                          + Thread.currentThread().getState());
    }
}

2. 线程组

可以把线程归到某一个线程组,线程组中可以有线程对象,也可以有线程组,这样的结构类似于树的形式。
执行main方法的线程名为:main,它所属线程组的组名也为:main。
线程或线程组会自动归属到当前线程组中。
当线程组调用interrupt方法时,这个线程组中的线程都会停止。
这里写图片描述

3. SimpleDateFormat非线程安全

解决方案:1) 每次都创建新的实例 2)ThreadLocal

4. 线程中出现的异常

当线程组中的其中一个线程出现异常时,其他线程不会受影响
线程异常处理机制:首先调用自带的异常处理,如果没有,然后调用线程组的异常处理,如果调用默认的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Java——第七章(进程和多线程)—项目案例

1、之前有做过打印图形的程序,现在要通过两个线程对象打印出三角形和矩形,要求两个图形不能错乱。三角形Thread:public class SanjiaoThread implements Runn...

第七章:多线程

一、线程概述几乎所有的操作系统都支持同时运行过个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程。当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程。1、线程和进程...

JAVA多线程实现DEMO

  • 2016-05-26 15:30
  • 20KB
  • 下载

java多线程设计模式讲解

  • 2014-12-18 11:23
  • 10.89MB
  • 下载

java多线程基础二

本章主要说明 synchronized 和 volatile关键字的理解。 先看一段代码 public class ThreadVolatileDemo {  public static...

java多线程设计模式

  • 2015-01-17 18:30
  • 10.80MB
  • 下载

Java多线程-实例解析

Java多线程实例 3种实现方法 Java中的多线程有三种实现方式: 1.继承Thread类,重写run方法。Thread本质上也是一个实现了Runnable的实例,他代表一个线程的实例,并且启动...

Java多线程详解

  • 2017-08-10 20:40
  • 165KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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