zoukankan      html  css  js  c++  java
  • 【Java并发编程】14、Thread,线程说明

    线程的状态:New、Runnable、Blocked、Waiting、Timed waiting、Terminated

    1. RUNNABLE,对应"就绪"和"运行"两种状态,也就是说处于就绪和运行状态的线程在java.lang.Thread中都表现为"RUNNABLE"
    2. BLOCKED,对应"阻塞"状态,此线程需要获得某个锁才能继续执行,而这个锁目前被其他线程持有,所以进入了被动的等待状态,直到抢到了那个锁,才会再次进入"就绪"状态
    3. WAITING,对应"阻塞"状态,代表此线程正处于无限期的主动等待中,直到有人唤醒它,它才会再次进入就绪状态
    4. TIMED_WAITING,对应"阻塞"状态,代表此线程正处于有限期的主动等待中,要么有人唤醒它,要么等待够了一定时间之后,才会再次进入就绪状态

    Thread的各个方法对于线程状态的改变

    new Thread(),变为New状态
    start() ,变为Runnable状态,创建新的线程在栈空间中开辟新的空间.if (threadStatus != 0) 抛出异常
    run() ,不创建新的线程,直接在当前线程执行 thread的run方法
    field() ,使线程变成ready状态,从新和其他ready状态的线程参与cpu的竞争
    isAlive(),如果线程已经启动且尚未终止,则为活动状态。介于Runnable和Terminated中间,都属于活动状态
    join() ,B线程执行A.join(). B获取A的锁; 循环判断a.isAlive(),是则调用a.wait(0),进入Waiting状态
    sleep() ,当前线程进入TIMED_WAITING状态,不释放监视器锁
    interrupt(),不会中断一个正在运行的线程。如果线程被Object.wait, Thread.join和Thread.sleep三种方法之一阻塞,
    它将接收到一个中断信号,提早地终结被阻塞状态,变成Runnable状态,抛出异常InterruptedException,继续往下执行
    如果线程没有被阻塞,这时调用interrupt()将不起作用
    isInterrupted(),isInterrupted(false),查看线程的中断位,不清除
    interrupted() ,isInterrupted(true),静态方法,清除中断位,返回清除的中断位,只有当前线程才可以清除自己的中断位

    Object的方法对于线程状态的改变

    wait() ,使持有该对象的线程把该对象的控制权交出去,然后处于等待这个对象的控制权的状态。当前线程进入Waiting或者Timed waiting
    notify() ,通知某个正在等待这个对象的控制权的线程可以继续运行。
    notifyall(),通知所有等待这个对象控制权的线程继续运行。

  • 相关阅读:
    Unable To Open Database After ASM Upgrade From Release 11.1 To Release 11.2
    11g Understanding Automatic Diagnostic Repository.
    How to perform Rolling UpgradeDowngrade in 11g ASM
    Oracle 11.2.0.2 Patch 说明
    Pattern Matching Metacharacters For asm_diskstring
    Steps To MigrateMove a Database From NonASM to ASM And ViceVersa
    Upgrading ASM instance from Oracle 10.1 to Oracle 10.2. (Single Instance)
    OCSSD.BIN Process is Running in a NonRAC Environment
    Steps To MigrateMove a Database From NonASM to ASM And ViceVersa
    On RAC, expdp Removes the Service Name [ID 1269319.1]
  • 原文地址:https://www.cnblogs.com/wangzhongqiu/p/8398207.html
Copyright © 2011-2022 走看看