黑马程序员_多线程_1

本文介绍了Java中创建线程的两种主要方法:继承Thread类和实现Runnable接口,并提供了详细的步骤说明及示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

——- android培训java培训、期待与您交流! ———-

进程:一个正在执行的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径或者控制单元

线程:进程中一个独立的控制单元,线程控制着进程的执行

一个进程至少有一个线程

两种创建线程的方式:
一、
1、定义类,集成Thread
2、复写run方法,将自定义代码存储在run方法中,让线程运行
3、调用线程的start方法,该方法两个作用:启动线程,调用run方法

二、
1、定义类实现Runnable接口
2、覆盖Runnable接口中的run方法,将线程要运行的代码存放在该run方法中
3、通过Thread类建立线程对象
4、将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数
5、调用Thread类的start方法开启线程并调用Runnable接口子类的run方法
—————————————————————
实际操作:

//第一种方法
class PrimeThread extends Thread {
long minPrime;
PrimeThread(long minPrime) {
this.minPrime = minPrime;
}

     public void run() {
         // compute primes larger than minPrime
          . . .
     }
 }

//创建并启动一个线程
PrimeThread p = new PrimeThread(143);
p.start();

//第二种方法
class PrimeRun implements Runnable {
long minPrime;
PrimeRun(long minPrime) {
this.minPrime = minPrime;
}

     public void run() {
         // compute primes larger than minPrime
          . . .
     }
 }

//创建并启动线程 
 PrimeRun p = new PrimeRun(143);
 new Thread(p).start();

随文附上一份两种方式创建线程的实例代码

//继承类的方式

public class ThreadDemo extends Thread {
    //apple初始数量20个
    private static int appleNum = 20;
    //小孩名,便于打印时候区分
    private String childName;
    ThreadDemo(String name){
        this.childName = name;
    }
    public void run(){
        //两个小孩分别初始食用数量0
        int childEat = 0;
        while(true){
            //开始吃,每次吃一个,appleNum最低不能为0
            if(appleNum>0){
                childEat++;
                appleNum--;
                System.out.println(childName+"吃了:"+childEat+"个;还剩:"+appleNum);
            }   
        }

    }
}

//实现接口的方式

class ThreadDemo_2 implements Runnable {
    //apple初始数量20个
        private static int appleNum = 20;
        //小孩名,便于打印时候区分
        private String childName;
        ThreadDemo_2(String name){
            this.childName = name;
        }
        public void run(){
            //两个小孩分别初始食用数量0
            int childEat = 0;
            while(true){
                //开始吃,每次吃一个,appleNum最低不能为0
                if(appleNum>0){
                    childEat++;
                    appleNum--;
                    System.out.println(childName+"吃了:"+childEat+"个;还剩:"+appleNum);
                }   
            }

        }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值