当前位置: 首页 > news >正文

JUC学习(1) 线程和进程

2.线程和进程

线程,进程

进程:一个程序。

一个进程往往可以包含多个线程,至少包含一个!

Java默认有2个线程

  • main
  • GC

对于Java而言,三种开启线程的方式

  • Thread
  • Runnable
  • Callable

Java真的可以开启线程吗

  • 不可以,只能通过本地方法调用,Java无法操作硬件
并发,并行
  • 并行:依赖逻辑处理器的数量
    • CPU多核,多个线程可以同时执行,快速交替
  • 并发(多线程操作同一个资源):依赖cpu的速度
    • CPU一核,模拟出来多条线程,快速交替

并发编程的本质:充分利用CPU的资源

线程有几个状态

线程有6个状态

  • NEW 新生
  • RUNNABLE 运行
  • BLOCKED 阻塞
  • WAITING 等待,死死的等待
  • TIMED_WAITING 超时等待
  • TERMINATED 终止
wait/sleep  区别
  • 1.来自不同的类
  • 2.关于锁的释放
    • wait会释放锁
    • sleep不会释放锁
  • 3.使用的范围不同
    • wait:必须在同步代码中
    • sleep:可以在任何地方睡
  • 4.是否需要捕获异常
    • wait需要捕获或声明抛出 InterruptedException
    • sleep也需要捕获或声明抛出 InterruptedException

相关文章:

  • SQL Server 游标介绍
  • 《MySQL:MySQL表结构的基本操作》
  • webgl入门实例-07顶点缓冲区示例
  • 什么是分库分表?
  • 制作Unoconv项目的Docker镜像
  • 部署若依前后端分离
  • 详细讲解一下Java中的Enum
  • vue常见错误
  • 用idea配置springboot+mybatis连接postersql数据库
  • 从GPT到Gemini 大模型进化史
  • CSS的复合选择器
  • Python与图像处理:从基础操作到智能应用的全面解析
  • 《理解 Java 泛型中的通配符:extends 与 super 的使用场景》
  • 电力变压器油的<油质气象色谱>指标分析
  • 链式数据存储系统
  • 【数据结构】线性表( List)和 顺序表(ArrayList)
  • Python自学第2天:条件语句,循环语句
  • RestSharp和Newtonsoft.Json结合发送和解析http
  • 协同推荐算法实现的智能商品推荐系统 - [基于springboot +vue]
  • 矢量网络分析仪(VNA)能测什么?5大核心功能与典型应用场景详解
  • 鄂州交警通报致1死2伤车祸:女子操作不当引发,已被刑拘
  • 腾讯一季度营收增长13%,马化腾:战略性的AI投入将带来长期回报
  • 上海市国防动员办公室副主任吴斌接受审查调查
  • 一个多月来上海交大接连“牵手”三区,在这些方面进行区校合作
  • 山东市监局回应“盒马一批次‘无抗’鸡蛋抽检不合格后复检合格”:系生产商自行送检
  • 京东CEO许冉:外卖日单量接近2000万单,看到外卖对平台拉动和转化效应