Java编程语言是一种简单、面向对象、分布式、解释型、健壮安全、与系统无关、可移植、高性能、多线程和动态的语言。如今Java已经广泛应用于各个领域的编程开发。

什么是Java多线程?

进程与线程

进程

当一个程序被运行,就开启了一个进程,比如启动了qq,word

程序由指令和数据组成,指令要运行,数据要加载,指令被cpu加载运行,数据被加载到内存,指令运行时可由cpu调度硬盘、网络等设备

线程

一个进程内可分为多个线程

一个线程就是一个指令流,cpu调度的最小单位,由cpu一条一条执行指令

并行与并发

并发:单核cpu运行多线程时,时间片进行很快的切换。线程轮流执行cpu

并行:多核cpu运行多线程时,真正的在同一时刻运行

Java提供了丰富的api来支持多线程。

为什么用多线程?

多线程能实现的都可以用单线程来完成,那单线程运行的好好的,为什么Java要引入多线程的概念呢?

多线程的好处:

程序运行的更快!快!快!

充分利用cpu资源,目前几乎没有线上的cpu是单核的,发挥多核cpu强大的能力

多线程难在哪里?

单线程只有一条执行线,过程容易理解,可以在大脑中清晰的勾勒出代码的执行流程

多线程却是多条线,而且一般多条线之间有交互,多条线之间需要通信,一般难点有以下几点

1、多线程的执行结果不确定,受到cpu调度的影响

2、多线程的安全问题

3、线程资源宝贵,依赖线程池操作线程,线程池的参数设置问题

4、多线程执行是动态的,同时的,难以追踪过程

5、多线程的底层是操作系统层面的,源码难度大

有时候希望自己变成一个字节穿梭于服务器中,搞清楚来龙去脉,就像无敌破坏王一样(没看过这部电影的可以看下,脑洞大开)。

以上内容由开课吧老师猿小布提供,更多Java教程尽在开课吧广场Java教程频道。

Java多线程电影院,干货来袭:图解Java多线程(一)相关推荐

  1. 干货来袭!java怎么创建包和类

    前言 说起来开始进行面试是11月倒数第二周,上午9点,我还在去公司的公交上,突然收到蚂蚁的面试电话,其实算不上真正的面试.面试官只是和我聊了下他们在做的事情(主要是做双十一这里大促的稳定性保障,偏中间 ...

  2. 干货来袭!java编程工具排行榜

    前言 当你准备跳槽面试的时候,明明只是一份15K的工作,却问你会不会多线程,懂不懂高并发,火箭造得让你猝及不防,结果就是两个字--凉凉!而在如今的市场,什么多线程.高并发.分布式.负载均衡.集群.微服 ...

  3. 干货来袭!java核心技术卷一pdf

    正文 先问小伙伴们一个问题,登录难吗?"登录有什么难得?输入用户名和密码,后台检索出来,校验一下不就行了."凡是这样回答的小伙伴,你明显就是产品思维,登录看似简单,用户名和密码,后 ...

  4. java -jar 怎么停止_图解Java日志体系

    概要 本文的目的是搞清楚Java中各种日志Log之间是怎么的关系,如何作用.依赖,好让我们平时在工作中如果遇到"日志打不出"或者"日志jar包冲突"等之类的问题 ...

  5. java类对象的内部结构图解(java对象模型精讲)

    目录: java虚拟机汇总 class文件结构分析 1).class文件常量池中的常量项结构 2). 常用的属性表的集合 类加载过程 1).类加载器的原理以及实现 虚拟机结构分析 1).jdk1.7和 ...

  6. 图解Java数据结构之双向链表

    上一篇文章说到了单链表,也通过案例具体实现了一下,但是单链表的缺点也显而易见. 单向链表查找的方向只能是一个方向 单向链表不能自我删除,需要靠辅助节点 而双向链表则能够很轻松地实现上面的功能. 何为双 ...

  7. 图解Java数据结构之环形链表

    本篇文章介绍数据结构中的环形链表. 介绍 环形链表,类似于单链表,也是一种链式存储结构,环形链表由单链表演化过来.单链表的最后一个结点的链域指向NULL,而环形链表的建立,不要专门的头结点,让最后一个 ...

  8. 图解Java多线程设计模式

    图解Java多线程设计模式 1-4章 第一部分 第五章 生产者与消费者 第六章 读写锁 7.8.9章 第三部分 第十章 Two-phase Termination 想要结束运行中的线程 ,这张有问题, ...

  9. 图解Java多线程设计模式——Java多线程基础

    文章目录 简介 线程的启动 线程启动(1)--利用Thread类的子类 线程启动(2)--利用Runnable接口 利用ThreadFactory新启动线程 线程的暂停 线程的互斥处理 synchro ...

最新文章

  1. c executable和c library_双功能超薄Fe-Nx-C单原子催化剂用于同时制备乙烯和芳基氯化物...
  2. 额外域建立FSMO角色转移及夺取
  3. 基于MongoDb的S3实现
  4. SVN提交时强制用户写日志
  5. [转]C#读写xml文件
  6. 如何使用digiKam进行照片管理
  7. C++11多线程创建的三种方法
  8. 无法执行dex:多个dex文件定义了Lcom / myapp / R $ array;
  9. Python 进阶 —— 使用 map reduce
  10. JS 中引号多级嵌套
  11. oracle报表工具查询数据太慢优化方案,页面优化和sql优化
  12. 电场在计算机专业的应用,电磁学在电力系统中的应用
  13. linux 查找文件及根据条件搜索文件内容
  14. Chrome浏览器使用AdGuard去除百度热搜
  15. 4k纸是几厘米乘几厘米_4K纸有多大 。。厘米
  16. 一文了解线控制动市场格局——7家公司10款产品盘点
  17. Linux 系统时间 EST 改 CTS
  18. Oracle递归查询的使用
  19. securecrt连接虚拟机提示账号密码错误
  20. 真无线蓝牙耳机哪个延迟最低?低延迟蓝牙耳机推荐

热门文章

  1. 计算机直男专业,大学生“气质大比拼”!闷骚型计算机,直男癌土木工程,你躺枪没...
  2. 《忏悔录》法—让雅克.卢梭
  3. HDU 2087 [KMP]
  4. 百度基础架构部实习生招聘启事(面向2021年毕业生)​
  5. Huffman-哈夫曼树-数据结构
  6. 购物车页面的功能(php+Ajax+jQuery)
  7. 重叠时间段问题优化算法详解
  8. UE4 如何让GamePaused时游戏声音不暂停
  9. 中国公司进行海外招聘应该注意什么?
  10. 5.(基础)tornado异步