java多线程

线程的生命周期

创建状态>>>>>>就绪状态 >>>>>>运行状态(线程创建后,要等待cpu时间)>>>>>>停止状态(run方法结束或者调用stop方法)

当线程再运行状态下,由于某种原因导致线程停止执行让出cpu时间,线程就进入了阻塞状态,如调用sleep方法

正确停止线程的方法,不要用线程的stop方法进行退出线程,太暴力,不管线程运行到什么状态,就是直接停。正确的方法是设置一个停止的标志,最好用boolean类型。

守护线程,相对于用户线程,是运行在后台用来给用户线程。可以用setDiamond(true)方法设置守护线程,需要注意的是,这个方法必须在start方法之前调用,否则会抛出异常,在守护线程中产生的新线程也是守护线程,不是所有任务都可以交给守护线程来做的,比如读写操作和逻辑运算

继续深入学习理解java并发知识

1.Java Memory Mode

  • JMM描述了Java线程如何通过内存进行交互
  • happens-before
  • synchronized,volatile & final

2.Lock & Condition

  • Java锁机制和等待条件的高级实现
  • java.util.concurrent.locks

3.线程的安全性

  • 原子性和可见性
  • DeadLocks

4.多线程编程常用的交互模式

  • Producer-Consumer模型
  • Read-Write Lock模型
  • Futrue模型
  • Worker Thread模型

5.java并发编程工具

java核心技术,java concurrency in practice两本书可以参考一下

zhumiao
原文地址:https://www.cnblogs.com/zhumiao/p/9489498.html