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

线程记录(1)

创建线程:

一、1.继承Thread,重写run(),将操作写入其中

        2.创建子类对象,start()

二、1.实现runnable接口,实现run()

        2.创建子类对象,将子类对象作为参数传递到thread的构造器中,创建出Thread类的对象

        3.Thread类的对象调用start()

作用:实现runnable接口,没有单继承的局限性,更适合处理多个线程有共享数据的情况。

三、1.实现Callable接口,实现call(),将操作写入其中,

        2.创建实现callable接口的对象,作为参数传递到FutureTask对象中,

        3.将FutureTask对象作为参数传递到Thread对象,调用start()

        4.获取Callable中call方法的返回值

作用:

四、1.以方式二、三创建好runnable接口或callable的实现类,重写run()或call()

        2.创建线程池

        3.调用execute()执行某个线程,参数就是实现类

作用:

1.提高了响应速度(减少了创建新线程时间)

2.降低资源消耗(重复利用线程池中的线程,不需要每次都创建)

3.便于线程管理

五、匿名类:再thread对象中,将参数作为一个方法,new一个runnable(),重写run()

run()和start():
run()中包含要执行的线程内容,当run()方法运行结束后,线程随即终止。

start()启动线程,调用start0()进行系统调度资源分配。

直接调用run():相当于调用一个普通方法,并没有启动一个线程。

调用start():线程会进入就绪状态并得到cpu时间片后开始执行run()方法中的任务。

runnable和Callable:

Callable的 call() 方法可以返回值和抛出异常,Callable可以返回装载有计算结果的Future对象。runnable不能

                

http://www.lryc.cn/news/120199.html

相关文章:

  • requests
  • Python 监控 Windows 服务
  • ELK中grok插件、mutate插件、multiline插件、date插件的相关配置
  • 【C#】静默安装、SQL SERVER静默安装等
  • 在vue3中定义组件的5种方式
  • 算法训练营题目,忘了第几天了
  • 蓝桥杯-统计子矩阵
  • 在线预览Word、Excel、PowerPoint等文件
  • 准确预测极端降水,哥伦比亚大学推出升级版神经网络 Org-NN
  • 【数据结构】反转链表、链表的中间节点、链表的回文结构(单链表OJ题)
  • Python爬虫-抓取的目标数据为#x开头,怎么解决?
  • 短视频账号矩阵系统/技术开发搭建私有部署
  • 光致发光二极管光源——荧光效率检测系统
  • 【手撕C语言】多线程
  • Dubbo2-概述
  • 【将回声引入信号中】在语音或音频文件中引入混响或简单回声,以研究回声延迟和回波幅度对生成的回波信号感知的影响(Matlab代码实现)
  • pythonocc进阶学习:投影projection
  • Scractch3.0_Arduino_ESP32_学习随记_显示网络天气(二)
  • Mysql压力测试(sysbench)
  • TBDS MPP参数列表
  • C# OpenCvSharp 读取rtsp流
  • 每日后端面试5题 第七天
  • 计算机视觉的应用10-图片中的表格结构识别与提取实战
  • P4178 Tree (点分治)
  • Kubernetes 二进制搭建
  • QT QtXlsx安装使用
  • Java医院信息化HIS管理系统源码
  • 【Uni-App】uview 开发多端应用,密码显示隐藏功能不生效问题
  • 人工智能算法-SVM, KNN
  • 计算机网络—TCP