Java的多进程与多线程总结

本文详细介绍了Java中多线程的创建方法,包括继承Thread类和实现Runnable接口两种方式,并对比了两者的区别。此外,还讲解了如何设置线程优先级以及线程的调度机制。

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

一、何为程序?进程?线程?

        程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。
        进程(process)是程序的一次执行过程,或是正在运行的一个程序。动态过程:有它自身的产生、存在和消亡的过程。
        如:运行中的QQ,运行中的MP3播放器
        程序是静态的,进程是动态的。线程(thread),进程可进一步细化为线程,是一个程序内部的一条执行路径。
        若一个程序可同一时间执行多个线程,就是支持多线程的。

        154309_j19L_3375733.png

 

二、多线程的创建和启动

        Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread类来实现。

        Thread类的特性
        每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run()方法的主体称为线程体
通过该Thread对象的start()方法来调用这个线程。

        Thread类的构造方法
        Thread():创建新的Thread对象
        Thread(String threadname):创建线程并指定线程实例名
        Thread(Runnable target):指定创建线程的目标对象,它实现了Runnable接口中的run方法
        Thread(Runnable target, String name):创建新的Thread对象 

        创建线程的两种方式
        方式一:继承Thread类
             1)  定义子类继承Thread类。
             2)  子类中重写Thread类中的run方法。
             3)  创建Thread子类对象,即创建了线程对象。
             4)  调用线程对象start方法:启动线程,调用run方法。
        方式二:实现Runnable接口
            1)定义子类,实现Runnable接口。
            2)子类中重写Runnable接口中的run方法。
            3)通过Thread类含参构造器创建线程对象。
            4)将Runnable接口的子类对象作为实际参数传递给Thread类的构造方法中。
            5)调用Thread类的start方法:开启线程,调用Runnable子类接口的run方法。

三、继承方式和实现方式的联系与区别
 
public class Thread extends Object implements Runnable


        【区别】
            继承Thread:       线程代码存放Thread子类run方法中。
            实现Runnable:线程代码存在接口的子类的run方法。
        【实现方法的好处】
            1)避免了单继承的局限性
            2)多个线程可以共享同一个接口实现类的对象,非常适合多个相同线程来处理同一份资源。

四、 线程的调度

        175632_lp65_3375733.png

        线程的优先级控制
            MAX_PRIORITY(10);    
            MIN _PRIORITY (1);  
            NORM_PRIORITY (5);
        涉及的方法:
            getPriority() :返回线程优先值 
            setPriority(int newPriority) :改变线程的优先级
        线程创建时继承父线程的优先级

 

 

转载于:https://my.oschina.net/u/3375733/blog/1517685

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值