开发者社区> 格子衫码农> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

多线程基础

简介: 1、线程的生命周期 如图1-1 图1-1 线程的生命周期一共有五个状态,new、runnable、running、blocked、dead     1、new:刚创建,并未运行的线程   处于not alive状态;     2、runna...
+关注继续查看

1、线程的生命周期

如图1-1

img_57c161aa6013626303f85b649de4f4c0.png
图1-1

线程的生命周期一共有五个状态,new、runnable、running、blocked、dead

    1、new:刚创建,并未运行的线程   处于not alive状态;

    2、runnable:就绪状态,调用start()方法之后,等待cpu分配资源,在分配资源之前,线程不执行,但是处于alive状态;

    3、running:运行状态,runnable状态的线程获取的cpu资源之后,进入运行状态;

    4、blocked:堵塞状态,由于某种原因,导致线程让出cpu资源,暂定自己的执行,进入堵塞状态;

        (1)、sleep():时间到之后可自动恢复到就绪状态;join(),把并行的方法转换为串行,前面线程执行完毕,后面线程恢复到就绪状态(其实join方法的原理就是调用了wait方法)

        (2)、wait():调用notify()方法或者notifyAll()方法可以回到就绪状态

        (3)、被另一个线程阻塞、调用suspend方法,可通过resume方法恢复

2、守护线程

    简单理解为后台运行线程,进程结束,守护线程自然结束,线程对象中的daemon属性设置为true,则可设置为守护线程,比较经典的守护线程就是JVM中的垃圾回收,内存管理等,都是守护线程

3、线程中的异常处理

    线程是独立执行的代码片段,线程的问题应该由线程自己来解决

    出现checked Exception可直接通过try/catch进行处理

    出现unchecked Exception,需要注册一个事件进行处理

4、线程安全

    (1)、Java的内存模型,主要包含工作内存和主内存,主内存就是平时所说的堆内存,存放类实例,静态变量等,是多个线程共享的,正因为是多个线程共享的所以会出现线程安全问题,如图4-1所示


img_1a7ac86897435f4b7c750464bdb0bc03.png
4-1

        当线程操作某个对象时

            (1)、从主内存中复制变量到工作内存中(read and load)

            (2)、执行代码,改变共享变量值(use and assign)

            (3)、用工作内存数据刷新主内存中相关数据(store and write)

        所以,单个线程与线程的工作内存之间有了相互隔离的效果,称之为可见性问题

        实现线程安全的三种方法

        1、多实例

        2、使用java.util.concurrent下的类库

        3、使用锁机制,synchronized、lock方式

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
6. 多线程基础
对一个程序的运行状态, 以及在运行中所占用的资源(内存, CPU)的描述; 一个进程可以理解为一个程序; 但是反之, 一个程序就是一个进程, 这句话是错的。
0 0
多线程基础(上)
多线程基础(上)
0 0
多线程基础(下)
多线程基础(下)
0 0
【多线程基础知识】
【多线程基础知识】
0 0
第8章 多线程基础
建立多线程基础,了解基本知识。
0 0
多线程基础知识(上)
多线程基础知识(上)
0 0
多线程基础知识(中)
多线程基础知识(中)
0 0
多线程基础知识(下)
多线程基础知识(下)
0 0
多线程基础
需要了解的概念 并发和并行 并发侧重于任务的交替执行,同一时间只能执行一个任务;而并行是任务的同时执行,统一时间可以有多个任务被执行。 单核CPU与多核CPU下任务表现分别为并发与并行。 临界区 临界区用于表示一种公共资源或是共享数据,可以被多个线程使用,但是同一时间内,只能有一个线程在使用它。
533 0
+关注
格子衫码农
参与多个项目开发,涵盖电商、物联网等方向,为人谦逊,喜欢跟他们交流新技术发展,对待工作一丝不苟。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
属兔的处子——Clojure太灵活,臣妾驾驭不住啊
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载