美文网首页Java 杂谈Java
java 多线程概述

java 多线程概述

作者: 无敌锤子棒棒鸡 | 来源:发表于2019-04-26 14:54 被阅读0次
线程
为什么要使用多线程?
    1.更多的处理器核心
    2.更快的响应时间
    3.更好的编程模型
线程优先级
默认优先级为5,数值越大,优先级越高

Linux和java线程的映射表
https://blog.csdn.net/memory_nothing/article/details/83017653
线程的六个状态
NEW             —— 线程创建,还没有调用start()方法
RUNNING         —— 运行中
BLOCKED         —— 阻塞状态,表示线程阻塞于锁
WAITING         —— 等待状态
TIME_WAITING    —— 超时等待,不同于WAITING,可以在指定时间内自行返回
TERMINATED      —— 终止状态
守护线程
暂时理解成辅助吧,当JVM中没有非守护线程时,JVM需要退出,所有守护线程终止(例如垃圾回收线程)
启动和终止线程
为什么弃用suspend()、resume()和stop()?
    1.以suspend()方法为例,在调用后,线程不会释放已经占有的资源(比如锁),而是占有着资源进入睡眠状态,这样容易引发死锁问题
    2.,stop()方法在终结一个线程时不会保证线程的资源正常释放,通常是没有给予线程完成资源释放工作的机会,因此会导致程序可能工作在不确定状态下
线程间通信
volatile和synchronized关键字
    关键字volatile可以用来修饰字段(成员变量),就是告知程序任何对该变量的访问均需要从共享内存中获取,而对它的改变必须同步刷新回共享内存,它能保证所有线程对变量访问的可见性
    关键字synchronized可以修饰方法或者以同步块的形式来进行使用,它主要确保多个线程在同一个时刻,只能有一个线程处于方法或者同步块中,它保证了线程对变量访问的可见性和排他性
等待/通知机制
为什么需要等待/通知机制?
    因为如果没有这个机制,程序需要不停的轮询去获取资源,为了避免轮询,会采取sleep(),但是此时会出现两个缺点:
        1.难以确保及时性
        2.难以降低开销

相关文章

  • Java多线程机制——多线程概述

    本文概述 本篇文章将分四块内容对Java中的多线程机制进行介绍:一. 多线程概述二. 实现多线程的两种方式三. 多...

  • JavaSE第19篇:多线程下篇

    核心概述:本篇我们将继续学习Java中的多线程,其中有多线程的等待唤醒机制、Condition接口的使用、Java...

  • Java多线程(二)

    Java多线程(二) 上一篇“Java多线程(一)”主要讨论的是线程的创建,本章主要讨论停止线程。 1.概述 停止...

  • Java:线程池Executors.newFixedThread

    摘要:Java,多线程,线程池 多线程编程和线程池概述 (1)多线程程序: 计算机可以实现多任务 ( multit...

  • java 多线程概述

    线程 线程优先级 线程的六个状态 守护线程 启动和终止线程 线程间通信 等待/通知机制

  • Java 同步原语 synchronized 剖析和锁优化

    [TOC] 概述 Java 在语法层面提供了 synchronized 关键字来实现多线程同步,虽然 Java 有...

  • Java多线程并发之同步容器和并发容器-第一篇

    Java多线程并发之同步容器和并发容器-第一篇 概述 本文主要讲解在Java多线程并发开发中,集合中有哪些支持并发...

  • Java基础(多线程)

    多线程概述 多线程是Java的特点之一, 掌握多线程编程技术, 可以充分利用CPU的资源,更容易解决实际中的问题,...

  • Java线程源码解析之start

    概述 Java开发中,会经常使用到多线程,有必要深入了解其实现原理; 创建Thread java.lang.Thr...

  • Java多线程系统概述

    Java多线程系统概述 1.Executor 异步执行框架,其实就是一个接口且只有一个方法: 它的出现是为了将任务...

网友评论

    本文标题:java 多线程概述

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