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

多线程的学习

程序:一段静态的代码,是应用软件执行的蓝本

进程:程序一次动态执行的过程,对应从代码加载,执行到执行完毕的一个完整过程

线程:比进程更小的执行单位

多线程的基本概念:每个进程都有一段专用的内存区域,多个进程的内部数据和状态都是完全独立的多个线程可共享一块内存空间和一组系统资源,有可能互相影响

创建线程对象,要告诉线程所要执行的代码,即run()方法

创建线程的两种方式

继承Thread类 实现Runnable接口

继承Thread类 public class类名 extends Thread 在其中假如属性,同时覆盖run()方法, 创建线程对象后,调用其start方法,启动线程

利用向Thread()构造方法传递Runnable对象来创建线程 public class 类名 implements Runnable{}

类名 对象名=new 类名(实参表) Thread 线程对象名=new Thread(对象名)

注意:

run()方法规定了线程要执行的任务,但一般不是调用run()方法,而是通过线程的start()方法来启动线程

sleep()方法表示线程休眠,时间单位为毫秒,但实际休眠所用时间一般不会等于给定的时间值,休眠过程中可能会被其他线程中断,所一要求捕获 InterruptedException异常

创建线程的两种方法的比较

直接继承Thread类,编写简单,可以直接操纵线程,但是不能再继承其他类

使用Runnable接口,可以将Thread类与所要处理的任务的类分开,形成清晰的模型,还可以从其他类继承

线程的优先权

newthread.setPriority() 线程的级别有10级,默认的是5

自私的线程:有很高的优先权的线程,不主动睡眠或让出处理器控制权

线程的常用方法

run方法

运行线程的主体,启动线程时,由java直接调用

stop方法

停止线程

sleep方法

暂停线程执行,让其他线程得到机会,sleep要抛出异常,必须抓住

还有join()方法等待的时”线程终止“,这个方法的使用契机

场景类型核心特征join()是否必要
结果依赖型主线程需要子线程的计算结果/执行结果
无依赖并行型主线程和子线程各自执行独立任务,互不依赖
http://www.jsqmd.com/news/120175/

相关文章:

  • 【毕业设计】基于springboot的校园零售管理系统的设计与实现(源码+文档+远程调试,全bao定制等)
  • 达梦数据库深度实践与学习心得
  • 团队作业六——事后分析报告
  • 责任链实战的高级用法:多级校验、工作流,这样写代码才足够优雅!
  • 九支高校团队入选第四届Alexa社交机器人挑战赛
  • 化工园区企业污泥清淤压滤施工哪个专业
  • ros2 humble 安装Qt编译环境 - 指南
  • 令牌桶VS漏桶:谁才是流量控制的“最优解”?
  • Java计算机毕设之基于Java的高校超市管理系统设计与实现基于springboot的校园零售管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • consul - yebinghuai-qq
  • 【课程设计/毕业设计】基于springboot的校园零售管理系统的设计与实现:校园超市、便利店商品【附源码、数据库、万字文档】
  • 化工园区企业污泥清淤压滤施工哪家资质全
  • Gateway 网关坑我! 被这个404 问题折腾了一年?
  • Ajax技术:前后端交互全解析
  • 开关电源-Buck拓扑结构
  • 12.22
  • jdk1.8 是如何解决死循环问题的?
  • 10个高效降AI率工具,MBA必备避坑指南
  • CPU RAM(内存) 是什么?一篇文章搞定入门!
  • Docker容器操作总结
  • 二叉树的“家谱学”:为什么最近公共祖先是最优解?
  • 【LEA-BP】基于爱情进化算法LEA优化BP神经网络的风电功率预测研究附Matlab代码
  • 【App Service】部署War包到Azure云上遇404错误
  • 重庆三峡学院图书资料管理系统设计与实现(源码+论文+部署+安装)
  • 神经网络和深度学习 第四周:深度神经网络的关键概念
  • 华为OD机考双机位C卷 - 计算误码率 (Java Python JS C/C++ GO )
  • 2025 国内整合营销服务商TOP10 评测!全链路赋能 + 标杆案例,十大品牌权威榜单发布,驱动品牌增长新引擎 - 全局中转站
  • openFeign - yebinghuai-qq
  • kubernetes终端管理神器
  • GPIO输入输出的内容补充(继上一篇)