美文网首页技术干货
Java多线程基础

Java多线程基础

作者: 程序员爸爸 | 来源:发表于2017-04-02 09:38 被阅读0次

如你们所知,想在java行业拿到高薪,多线程是个必须熟练的技能,可是入门费劲,故最近搜集关于多线程的资料,做如下总结。

1.锁有哪些实现。

jdk1.5之前有synchronized,jdk1.5+后有ReentrantLock,ReentrantReadAndWriterLock,countDownLatch,CycliBarrier。

2.线程启动过程分析

线程的启动,大家都知道是start,这时候线程会向内存申请一些资源准备(线程工作栈所需要的内存等),然后等待cpu空闲下来调度,这时候会执行run,直到线程销毁。

3.线程内存模型

线程有工作空间,有线程工作变量,线程A变量修改了,线程B并不能读到修改的值,只有当线程A把工作变量刷到共享内存变量,才能共享给B,谈到这里就不得不提一下volatitle,volatitle修饰的变量,会把线程工作变量强刷到共享内存,这样就能保证其他线程读到最新的变量了。

4.线程上下文切换

众所都知,线程执行的效率靠的是cpu的调度,当线程没有执行完,或是sleep,或是wait,cpu需要记住此刻的线程变量等上下文,然后切换执行其他线程,当再次切换回来的时候,需要根据线程上下文继续未完的步骤,所以线程越多,cpu越忙,导致cpu狂飙100%

5.wait,sleep区别

wait 线程会堵塞,释放锁,让出cpu,等待notify,notifyall唤醒。

sleep线程会休眠一段时间,不释放锁,让出cpu调度其他任意优先级的等待调度的线程。

6.yield, join区别

yield会让线程让出cpu给另外一个同样优先级的线程。join是让其他线程等待当前线程执行完。

相关文章

  • android 多线程 — 线程的面试题和答案

    这里都是我从各个地方找来的资料,鸣谢: Java多线程干货系列—(一)Java多线程基础 JAVA多线程和并发基础...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • Java多线程目录

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

  • Java基础

    Java基础 集合基础 集合框架 多线程基础 多线程框架 反射 代理 集合基础 ArrayList LinkedL...

  • java多线程相关

    (一) 基础篇 01.Java多线程系列--“基础篇”01之 基本概念 02.Java多线程系列--“基础篇”02...

  • Java多线程高级特性(JDK8)

    [TOC] 一、Java多线程 1.Java多线程基础知识 Java 给多线程编程提供了内置的支持。一条线程指的是...

  • Java多线程系列目录(共43篇)-转

    最近,在研究Java多线程的内容目录,将其内容逐步整理并发布。 (一) 基础篇 Java多线程系列--“基础篇”0...

  • Android中的多线程

    1. Java多线程基础 Java多线程,线程同步,线程通讯 2. Android常用线程 HandlerThre...

  • Java架构师阅读书单

    一、内功心法 Java基础: 《Java核心技术》《Java编程思想》《Effective Java》 多线程...

  • java学习路线

    javaSE java基础语法 java文件操作 java网络操作 java多线程 java数据库操作 java ...

网友评论

    本文标题:Java多线程基础

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