Java关于如何创建多线程的两种方法及其他知识

本文详细介绍了Java中创建多线程的两种方式,包括继承Thread类和实现Runnable接口,并讲解了Thread类的重要方法如start()、run()、yield()、join()等。此外,还讨论了线程优先级的设置及其影响,强调高优先级并不保证优先执行,而是增加执行概率。

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

你总会迎来那束光  或早  或晚

--------李亦欣

创建多线程的两种方式
1:写一个类继承于Thread类
      重写Thread类中的run方法(run方法中写的是  你这个线程想干啥  那就写啥代码)
      造这个类的对象 比如说是 t1
      通过t1调start方法


2:造一个类实现runnable接口
      在这个类中实现(其实就是重写)run()方法   一样的  这个线程要干啥  里面就写啥代码


3:造这个类的对象  比如说这个对象是p1


4:把这个对象作为参数传到Thread类的构造器中 并造一个Thread类的对象    eg:Thread t = new Thread(p1);


5:用这个Thread类的对象去调用start()方法     t.start();


关于Thread类中的一些方法
    1. start()方法:开始一个线程  调用Thread类中的run方法


    2.run()方法:需要重写   在新的类中重写run方法,内容是  这个线程要干嘛  就写啥代码


    3.Thread.currentThread()方法:返回当前正在执行的线程


    4.setname()方法:给一个线程命名   如果给分线程命名  因为你创建了新的类继承于Thread类   即也就是创建了当前类的对象   在main方法中直接对象.setname(“分线程”)就可以了   如果给主线程命名   那么只能是Thread.currentThread().setname(“主线程”)


    5.getname()方法:同理  得到当前线程的名称     Thread.currentThread().getname()


    6.yield()方法:释放当前CPU的执行权,比如,现在是分线程正在执行,结果执行到了yield方法,那么CPU的执行权被释放,下一次的执行权就不一定又是分线程了,就是让他们自己抢去,谁能抢到,就是谁的。当然可能还是分线程抢到,谁让人家有这个本事呢


    7.join()方法:如果说当前主线程正在执行,结果执行到了join()方法,那么谁调的join方法,就让人家调的那个线程先执行完,你自己主线程再执行


    8.stop()方法:现在已经舍弃  强制停止结束当前的线程


    9.isalive()方法:看当前的线程是否还活着  还存在



    10.关于线程优先级设置的问题
       setpriority()方法    priority最大是10  最小是1  默认值为5          要是想改那么就对象.setpriority(具体的值  比如3  4  7  8)要是主线程想改呢?  就Thread.currentThread.setpriority(具体的值)最大的priority是MAX_PRIORITY=10   最小的priority是MIN_PRIORITY=1    默认的为NORM_PRIORITY=5   注意!!这几个值都是全局常量   要调用就是Thread.MAX_PRIORITY等等

最后就是一个getpriority()方法   调用跟之前一样   分线程就是对象.方法    主线程就是Thread.currentThread.getpriority()

值得注意的是  并不是一个线程的优先级越高就一定比优先级低的早抢占到CPU   早执行  
不是这样的!!优先级设置的越高  只是说这个线程被先执行的概率大而已!!是概率!!并不意味着他肯定就比优先级低的先执行!!

喜欢的就关注吧,持续更新Java知识!


      

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值