当前位置: 首页 > 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
http://www.xdnf.cn/news/5383.html

相关文章:

  • Springboot 自动装配原理是什么?SPI 原理又是什么?
  • 《AI大模型应知应会100篇》第23篇:角色扮演技巧:让AI成为你需要的专家
  • 【英语语法】基本句型
  • Redis面试——常用命令
  • webgl入门实例-09索引缓冲区示例
  • BH1750光照传感器---附代码
  • java + spring boot + mybatis 通过时间段进行查询
  • 【JavaScript】二十四、JS的执行机制事件循环 + location + navigator + history
  • 基于尚硅谷FreeRTOS视频笔记——13—HAL库和RTOS时钟源问题
  • UE学习记录part18
  • Java锁的分类与解析
  • LeetCode算法题(Go语言实现)_51
  • Vue3如何选择传参方式
  • C++面试
  • 【HDFS入门】HDFS核心配置与优化指南概述
  • 【Python学习笔记】Pandas实现Excel质检记录表初审、复核及质检统计
  • webgl入门实例-08索引缓冲区的基本概念
  • 杂记-LeetCode中部分题思路详解与笔记-HOT100篇-其三
  • 二分查找-LeetCode
  • 代码学习总结(三)
  • 算法5-16 对二进制字符串解码
  • 多 Agent 协作怎么整:从谷歌A2A到多Agent交互方案实现
  • STL简介(了解)
  • 【无标题】
  • Qt核心知识总结
  • 第六章:6.3求一个3*3的整型矩阵对角线元素之和
  • ESP32-idf学习(二)esp32C3作服务端与电脑蓝牙数据交互
  • 机器学习有多少种算法?当下入门需要全部学习吗?
  • vscode+keil嵌入式软件开发全流程
  • C++笔记-list