守护线程、礼让线程、插入线程

守护线程

  • 简称:备胎线程,属于Thread类,在别的线程执行完毕之后就会慢慢停止执行,垃圾回收机制就用到了类似守护线程,具体点击----->>>守护线程
  • 调用setDaemon(true)

实体类:

package com.itjh.pojo;

public class MyTread2 extends Thread {
    public MyTread2(){}
    //为让测试类可以直接给当前子线程起名字
    public MyTread2(String name){
    super(name);
    }

    @Override
    public void run() {
        for (int i = 0; i < 500; i++) {
            System.out.println(getName()+"。。子线程==。。。"+i);
        }
    }
}

测试类:

package com.itjh.Test;
import com.itjh.pojo.MyTread2;

public class TestMyT2 {
    public static void main(String[] args) {
        MyTread2 myTread1=new MyTread2("小飞机");
        MyTread2 myTread2=new MyTread2("小赤佬");
        //守护线程指定你当备胎啦,小东西
        myTread2.setDaemon(true);
        myTread1.start();
        myTread2.start();
    }
}

结果:明显看出小飞机线程弄完后,小赤佬线程也慢慢的结束了,只是因为CPU跑得比较快,所以小赤佬无法立即停止下来

小飞机。。子线程==。。。498
小飞机。。子线程==。。。499
小赤佬。。子线程==。。。259
小赤佬。。子线程==。。。260
小赤佬。。子线程==。。。261
小赤佬。。子线程==。。。262
小赤佬。。子线程==。。。263
小赤佬。。子线程==。。。264
小赤佬。。子线程==。。。265
小赤佬。。子线程==。。。266
小赤佬。。子线程==。。。267
小赤佬。。子线程==。。。268
小赤佬。。子线程==。。。269
小赤佬。。子线程==。。。270
小赤佬。。子线程==。。。271
Process finished with exit code 0

礼让线程

  • 孔融线程(属于Thread类):礼让他人,美好品德,我拿50个梨子,每次都让你先拿
  • 调用yield()方法

实体类(小飞机线程): 添加个yield();就可

package com.itjh.pojo;

public class MyTread2 extends Thread {
    public MyTread2(){}
    public MyTread2(String name){
    super(name);
    }
    @Override
    public void run() {
        for (int i = 0; i < 50; i++) {
            yield();
            System.out.println(getName()+"。。子线程==。。。"+i);
        }
    }
}

实体类(小赤佬线程):

package com.itjh.pojo;

public class MyTread21 extends Thread{
    public MyTread21(){
    }
    public MyTread21(String name){
        super(name);
    }
    @Override
    public void run() {
        for (int i = 0; i < 200; i++) {
            System.out.println(getName()+"。。线子程。。。。。");
        }
    }
}

测试类:

package com.itjh.Test;

import com.itjh.pojo.MyTread2;

public class TestMyT2 {
    public static void main(String[] args) {
        MyTread2 myTread1=new MyTread2("小飞机");
        MyTread2 myTread2=new MyTread2("小赤佬");
        myTread1.start();
        myTread2.start();
    }
}

结果;小飞机尽量会礼让小赤佬

小飞机。。子线程==。。。0
小飞机。。子线程==。。。1
小赤佬。。线子程。。。。。
小赤佬。。线子程。。。。。
小赤佬。。线子程。。。。。
小赤佬。。线子程。。。。。
小赤佬。。线子程。。。。。

插入线程

让插入的线程先执行

把上面的测试类变一下即:在其中添加join()方法,注意此方法应当在插入线程的.start()之后

package com.itjh.Test;

import com.itjh.pojo.MyTread2;
import com.itjh.pojo.MyTread21;

public class TestMyT2 {
    public static void main(String[] args) throws InterruptedException {
        MyTread2 myTread1=new MyTread2("小飞机");
        MyTread21 myTread2= new MyTread21("小赤佬");
        myTread1.start();
        myTread1.join();
        myTread2.start();

    }
}

结果:确实是小飞机先执行完毕,再执行小赤佬

小飞机。。子线程==。。。197
小飞机。。子线程==。。。198
小飞机。。子线程==。。。199
小赤佬。。线子程。。。。。
小赤佬。。线子程。。。。。
小赤佬。。线子程。。。。。
小赤佬。。线子程。。。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值