美文网首页
Java多线程 - API

Java多线程 - API

作者: yuanzicheng | 来源:发表于2017-05-05 23:42 被阅读95次
  • Java中创建线程有4种方式:实现Runnable接口、继承Thread(Thread本身也是Runnable接口的实现类)、实现Callable接口(可以返回执行结果)、使用Executor框架;
  • 线程类的多个实例(即多个线程)中,实例变量是相互独立的;
  • 线程类的一个实例(单个线程)作为参数传入多个线程中,实例变量在这些线程中是共享的,但是存在线程安全问题,需要在操作实例变量的方法上加上同步锁synchronized
  • 获取当前线程的方法:currentThread()
  • 检查线程是否存活:isAlive()
  • 使线程阻塞一定时间(ms为单位):sleep()
  • 获取线程ID:getId()
  • 中断线程(并不是真正的终止,而是标记):interrupt()
  • 检查当前线程是否中断(静态方法):interrupted(),再次使用会清除中断标记;
  • 检查线程是否中断:isInterrupted()
  • interrupt()后sleep()、sleep()后interrupt()均会发生InterruptedException异常;
  • 停止线程:检查是否中断,手动抛出异常(推荐,线程停止事件可以向上传播),或return
  • 暴力停止线程:stop(),此方法存在线程安全问题,已过时,不建议使用;
  • suspend()方法可以暂停线程,resume()方法可以恢复暂停的线程,不过这两个方法在jdk1.8中也已经过时了;
  • 线程执行到synchronized的方法时使用suspend()会引起独占锁问题;
  • yield()可以令线程释放当前的CPU资源,但释放的时间不确定,有可能释放后又立马获得;
  • 线程存在优先级1-10,设置优先级的方法为setPriority(),超过此范围会抛出异常IllegalArgumentException,JDK使用3个常量来预定义优先级:MIN_PRIORITY(1)NORM_PRIORITY(5)MAX_PRIORITY(10)
  • 线程的优先级具有继承性:如线程A启动线程B,则线程A、B的优先级相同;
  • 线程的优先级具有规则性:高优先级的线程总是大部分先执行完,优先级差距越大越明显,但不代表高优先级的线程全部先执行完;
  • 线程的优先级具有随机性:优先级较高的线程并不一定每一次都先执行完run()方法中的任务;
  • Java线程分为:守护线程用户线程,方法setDaemon()可以标记线程是否守护线程,当前运行的所有线程为守护线程时,JVM会结束工作。

相关文章

  • 11.2基于guava的多线程

    guava是Google开发的java API,这里面有一节,封装了多线程的一些操作。相比原生java实现的多线程...

  • Java多线程 - API

    Java中创建线程有4种方式:实现Runnable接口、继承Thread(Thread本身也是Runnable接口...

  • Java后端知识体系

    基础重点(必须扎实) Java语言 语言基础 《Java核心技术》基础语法面向对象常用API异常处理集合IO多线程...

  • JavaWeb开发必会技能

    Ø熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、多线程(...

  • 《Kotlin入门实战》CH9 | 文件IO,正则和多线程

    文件IO,正则和多线程 得益于kotlin的扩展函数,kotlin对java中api进行了改进,对于java中好用...

  • Java多线程--线程及相关的Java API

    Java多线程--线程及相关的Java API 线程与进程 进程是线程的容器,程序是指令、数据的组织形式,进程是程...

  • 带你搞懂Java多线程(五)

    带你搞懂Java多线程(一)带你搞懂Java多线程(二)带你搞懂Java多线程(三)带你搞懂Java多线程(四) ...

  • 带你搞懂Java多线程(六)

    带你搞懂Java多线程(一)带你搞懂Java多线程(二)带你搞懂Java多线程(三)带你搞懂Java多线程(四)带...

  • Java多线程目录

    Java多线程目录 Java多线程1 线程基础Java多线程2 多个线程之间共享数据Java多线程3 原子性操作类...

  • Java API及Object类

    1 Java 的API   Java 的API(API: Application(应用) Programming(...

网友评论

      本文标题:Java多线程 - API

      本文链接:https://www.haomeiwen.com/subject/uwzstxtx.html