JavaSE-20.1.1【进程和线程、实现多线程方式1:继承Thread类】

复制代码
 1 package day11.lesson1.p1;
 2 
 3 /*
 4 1 实现多线程
 5 
 6 1.1 进程和线程
 7 
 8     进程
 9         是正在运行的程序
10         是系统进行资源分配和调用的独立单位
11         每一个进程都有它自己的内存空间和系统资源
12     线程
13         是进程中的单个顺序控制流,是一条执行路径
14         单线程:一个进程如果只有一条执行路径,则称为单线程程序
15         多线程:一个进程如果有多条执行路径,则称为多线程程序
16 
17 1.2 实现多线程方式1:继承Thread类
18 
19     方法
20         void run() 在线程开启后,此方法将被调用执行
21         void start() 使此线程开始执行,Java虚拟机会调用run方法()
22 
23     步骤
24         定义一个类MyThread继承Thread类
25         在MyThread类中重写run()方法
26         创建MyThread类的对象
27         启动线程
28 
29     为什么要重写run()方法?
30         因为run()是用来封装被线程执行的代码
31     run()方法和start()方法的区别?
32         run():封装线程执行的代码,直接调用,相当于普通方法的调用
33         start():启动线程;然后由JVM调用此线程的run()方法
34  */
35 public class MyThreadDemo {
36     public static void main(String[] args) {
37         MyThread mt1 = new MyThread();
38         MyThread mt2 = new MyThread();
39 
40 //        mt1.run();
41 //        mt2.run();
42         //打印0-99 0-99
43         //直接调用run()并不会启动多线程
44 
45         mt1.start();
46         mt2.start();
47         //0-99 0-99 混杂打印
48         //调用start启动多线程
49     }
50 }
复制代码
复制代码
 1 package day11.lesson1.p1;
 2 
 3 public class MyThread extends Thread{
 4 
 5     @Override
 6     public void run() {
 7 //        super.run();
 8         for (int i=0; i<100; i++){
 9             System.out.println(i);
10         }
11     }
12 
13 }
复制代码

 

posted @   yub4by  阅读(45)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示