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

多线程入门

多线程

Thread

现在的Thread中的run方法,已经被实现了,所以已经不需要实现了

操作

  • 继承 extends Thread方法

  • 重写run方法

  • start()

案例

public class ThreadTest extends Thread{public void run() {for (int i = 0; i < 100; i++) {System.out.println("多线程" + i);}}public static void main(String[] args) {ThreadTest threadTest = new ThreadTest();threadTest.start();for (int i = 0; i < 100; i++) {System.out.println("主线程" + i);}}
}
  • 存在两个线程,一个是主线程,一个是其他的线程
  • 当start时,并不是线程启动了,而是线程进入了就绪状态,当所有线程都进入了就绪状态,由CPU来分配资源
  • 这个输出是,上面线程与下面线程同时进行的

在这里插入图片描述

Runnable

其实Thread也是实现了Runnable这个接口,同时这个接口中只有一个方法,,就是run方法

操作

  • 实现Runnable接口
  • 重写run方法
  • 创建Thread时将 实现Runnable接口类放进去
  • start

案例

public class RunableTest implements Runnable{@Overridepublic void run() {for (int i = 0; i < 100; i++) {System.out.println("多线程"+ i);}}
}public class Main {public static void main(String[] args) {Runnable runnable = new RunableTest();//Thread thread = new Thread(runnable);//thread.start();//与上面代码等效new Thread(runnable).start();for (int i = 0; i < 100; i++) {System.out.println("主线程"+i);}}
}
  • 得到的结果跟上述的是一样的

总结

注意:

  • 线程start(),并不是启动了,而是将加入到就绪队列,是与主线程一起的呢,再有cpu分配资源
  • 实现多线程的方式存在两个 extends Thread类 ,实现Runnable接口 ,同时重写run方法
  • Thread类也是实现了 Runnable接口
http://www.lryc.cn/news/330729.html

相关文章:

  • #!/bin/sh和#!/bin/bash的区别
  • 腾讯云(CVM)托管进行权限维持
  • STM32-03基于HAL库(CubeMX+MDK+Proteus)输入检测案例(按键控制LED)
  • DS3231SN
  • tsconfig.json文件翻译
  • 树状数组学习笔记
  • 【bugfix】如何解决svg到线上显示空白或者svg的viewBox为空
  • docker基础学习指令
  • 回溯大学生活
  • Android Fence机制
  • sa-token非Web上下文无法获取Request
  • tomcat 常见优化方案
  • 前端导出文本内容为csv文件,excel乱码
  • 36---USB HUB电路设计
  • FPGA在深度学习领域的应用的优势
  • Windows Edge 兼容性问题修复 基本解决方案
  • 【Servlet】服务器内部转发以及客户端重定向
  • 是否有替代U盘,可安全交换的医院文件摆渡方案?
  • Java设计模式详解:单例模式
  • Pointnet++改进即插即用系列:全网首发OREPA在线重新参数化卷积,替代普通卷积 |即插即用,提升特征提取模块性能
  • XRDP登录ubuntu桌面闪退问题
  • 【Node】使用Node.js构建简单的静态页面生成器
  • AI智能客服机器人是什么?对企业重要吗?
  • InfluxDB2的数据查询示例
  • CSS基础语法-黑马跟课笔记-供记录与查询
  • 「PHP系列」PHP数组排序及运用场景
  • VScode debug python(服务器)
  • 5.11 Vue配置Element UI框架
  • DolphinScheduler on k8s 云原生部署实践
  • JVM将虚拟机分成了哪几块区域?