一:wait()方法,wait(long timeout)
--->锁对象调用wait()方法,让当前线程小a进入等待状态,阻塞住,并让出当先线程拥有的锁。
--->直到其他线程用锁对象调用notifyAll(),notify()将小a从wait虚拟队列中将阻塞的线程唤醒。重新争锁。
--->当别的线程对当前线程小a的对象调用interrupt()方法,则阻塞在wait虚拟队列的线程抛出InterruptedException异常,打算阻塞。
--->wait(longtimeout)进入锁对象虚拟队列的线程在阻塞timeout长时间后,此时已经让出锁,自己自动唤醒,再次争抢锁。

二:notifyAll()notify()方法
--->notifyAll()方法是将进入锁对象wait队列里所有阻塞的线程唤醒,重新争取锁。
--->notify()方法是将进入所对象wait虚拟队列里的阻塞的线程,拿出一个唤醒。

三:sleep(long time)
--->当前线程休眠time长时间,并不释放锁。

四:interrupt()
--->线程对象a.interrupt():将a线程的中断标示位设置成true。
--->线程对象a.isInterrupted():获取a线程的中断标示位的值。
--->Thread.interrupted():返回当前线程的中断标示位的值,同时不管值是什么在返回前将该值设置为false;
--->当线程的中断标示位为true的时候,线程如果在wait().sleep().join()中阻塞时候,或者即将进入的时候,都会抛出InterruptedException异常,从阻塞状态中唤醒,并将状态位设置为false.

五:join()方法
--->在线程x的线程体中用线程a.join()时,则线程x的线程体就会阻塞到a.join()这句代码这,等待a线程的线程体运行完毕,线程x的线程体的代码才从a.join()这句代码开始往后执行。
--->join(long time):代表线程x会阻塞time秒时间,线程a运行正常,time秒后线程x开始从阻塞位置向下执行代码
--->底层是wait(),不考虑锁。

六:yeid()方法
--->那个线程调用此方法,那个线程暂时一次让出CPU调度权。至于能否暂停,实际看cpu是否将时间片分给其他的线程。我主动放弃一次,至于cpu走不走,看cpu的。

七:isAlive()方法
--->线程a.isAlive(),如果线程a的线程体还未执行完,则返回true,如果线程a的线程还未启动,活着线程体已经运行完,则返回false
--->来判断一个线程是否还活着

八:getstate()方法
--->获取线程的运行状态
--->NEW 新建状态
--->RUNNABLE 运行(可运行)状态
--->BLOCKED     阻塞状态
--->TIMED_WAITING     休眠状态
--->WAITING     等待状态
--->TERMINATED     终止状态

java多线程之:线程对象一些api的更多相关文章

  1. JAVA多线程之UncaughtExceptionHandler——处理非正常的线程中止

    JAVA多线程之UncaughtExceptionHandler——处理非正常的线程中止 背景 当单线程的程序发生一个未捕获的异常时我们可以采用try....catch进行异常的捕获,但是在多线程环境 ...

  2. JAVA多线程之wait/notify

    本文主要学习JAVA多线程中的 wait()方法 与 notify()/notifyAll()方法的用法. ①wait() 与 notify/notifyAll 方法必须在同步代码块中使用 ②wait ...

  3. JAVA多线程之volatile 与 synchronized 的比较

    一,volatile关键字的可见性 要想理解volatile关键字,得先了解下JAVA的内存模型,Java内存模型的抽象示意图如下: 从图中可以看出: ①每个线程都有一个自己的本地内存空间--线程栈空 ...

  4. java多线程之yield,join,wait,sleep的区别

    Java多线程之yield,join,wait,sleep的区别 Java多线程中,经常会遇到yield,join,wait和sleep方法.容易混淆他们的功能及作用.自己仔细研究了下,他们主要的区别 ...

  5. Java多线程之Runnable与Thread

    Java多线程之Thread与Runnable 一.Thread VS Runnable 在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Thread类和 ...

  6. Java多线程之ConcurrentSkipListMap深入分析(转)

    Java多线程之ConcurrentSkipListMap深入分析   一.前言 concurrentHashMap与ConcurrentSkipListMap性能测试 在4线程1.6万数据的条件下, ...

  7. java多线程之wait和notify协作,生产者和消费者

    这篇直接贴代码了 package cn.javaBase.study_thread1; class Source { public static int num = 0; //假设这是馒头的数量 } ...

  8. Java多线程之ThreadLocal总结2

    ThreadLocal是什么 早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地 ...

  9. Java——多线程之Lock锁

    Java多线系列文章是Java多线程的详解介绍,对多线程还不熟悉的同学可以先去看一下我的这篇博客Java基础系列3:多线程超详细总结,这篇博客从宏观层面介绍了多线程的整体概况,接下来的几篇文章是对多线 ...

随机推荐

  1. C++学习基础九——继承

    1.不同于Java中通过extends实现继承,C++是通过:实现的. 2.C++中同样包含public,private,protected三个关键字: public关键字表示在任意其他类中可调用该成 ...

  2. ubuntu 14.04加入五笔输入法

    快捷键"ctrl+AIt+T",弹出终端,输入以下指令 //先卸载IBUS输入法 killall ibus-daemon sudo apt- get purge ibus ibus ...

  3. 拓扑图弹力布局呈现Flickr图片搜索结果

    十年前有值得分享的图片我都存在Flickr上,可惜yahoo收购了Flickr之后堕落​好多年,最近yahoo在梅姐带领下Flickr团队终于恢复了生机,个人免费存储空间扩充到了1T,界面用户体验也有 ...

  4. 完成一个MVC+Nhibernate+Jquery-EasyUI信息发布系统

    一.最近学习了Jquery-EasyUI框架,结合之前用过的MVC3+Nhibernate做一个信息发布系统,对工作一年半的自己做一个总结吧!(也正好 供初学者学习!) 二.先上截图(系统简介),让大 ...

  5. 普通用户开启AUTOTRACE 功能

    AUTOTRACE是一个SQL*Plus工具,用于跟踪SQL的执行计划,收集执行时所耗用资源的统计信息.系统账户本身具有AUTOTRACE,其他账户需要通过手动赋予 一. 用系统账户登录(DBA) S ...

  6. Qt OpenGL三维绘图

     简介 OpenGL是为三维绘图提供的标准应用编程接口. OpenGL处理的仅仅是三维绘图方面,而很少或是根本不提供图形用户界面编程方面的支持.OpenGL*应用程序的用户界面必须由其它工具包创建,比 ...

  7. HFile文件解析异常解决

    1. 场景说明 需要对离线的 HFile 进行解析,默认可以使用如下的方式: hbase org.apache.hadoop.hbase.io.hfile.HFile -f $HDFS_PATH -p ...

  8. html 页面太长滚动时,固定页面菜单标签,或者导航标签的位置,fixed/stickUp the position

    有时你曾经需要把页面上的某些东西当页面太长发滚动的时候保留置顶位置显示,或许你有别的实现方式,我这个仅供参考, 源代码: /*global $, jQuery, alert*/ (function ( ...

  9. NetBeans运行项目报错

    1.错误描述 严重: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start co ...

  10. Java EE 之Hibernate异常总结【1】org.hibernate.LazyInitializationException: could not initialize proxy - no Session

    字面意义就是不能被初始化. 简单理解就是因为,你使用了lazy=true,这样hibernate在从数据库中调数据的时候是不会把关联的对象查出来的,而是保存一个获取值得方法,在你使用getXXX()调 ...