【多线程】Java高并发基础

本文介绍了多线程在摩尔定律失效背景下的发展,详细阐述了线程的概念、状态转换以及线程操作。同时,讨论了线程的同步异步、并发并行、临界区、阻塞非阻塞、死锁活锁和饿死问题,以及线程的优先级和并发级别。通过理解这些概念,有助于提升Java高并发程序设计能力。
摘要由CSDN通过智能技术生成

一、摩尔定律的失效和多线程的发展
摩尔定律的思想是,预计18个月会将芯片的性能提高一倍。但是在2004年,Intel CEO宣布Intel彻底取消4G Hz计划,至此摩尔定律在芯片上的发展已经失效了。如果计算机没有办法继续提高单个CPU的性能,那么就在一个CPU里面塞很多的核进去,因此多核CPU兴起。
在单核时代,多线程就有很广泛的应用,这时候多线程大多用于降低阻塞。多线程的作用不只是用作并行计算,还可以提高CPU的利用率。

二、线程的介绍
线程是进程里面更细微的执行单元,而多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率,线程是在同一时间需要完成多项任务的时候被实现。

线程的基本操作

  1. 线程刚刚新建出来,那它的状态就是new的状态,new状态的线程其实并没有开始工作,它只是一个静态的实体
  2. 当调用实例的start方法之后,线程才真正的被启动。线程被启动之后状态变成RUNNABLE状态,表示线程可以执行了,一切准备就绪(但RUNNABLE状态并不一定表示这个线程一定在CPU上执行,有没有真正在执行,取决于物理CPU的调度)
  3. 如果一个线程它的所有工作都做完了,那么自然它就会被终结掉,状态就处于TERMINATED状态,表示线程任务执行结束
  4. 有些时候线程在执行过程中不可避免要去申请某些锁,比如要求申请某些对象的一个定时器,比如调用了synchronized方法,这个时候线程可能会被阻塞住
  5. 如果一个线程在执行过程中调用了wait,那么这个进程就会变成等待状态WAITING,进入等待状态的线程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值