JAVA学习笔记(四十)- 守护线程与中断线程

守护线程

/*
 * Daemon线程,即守护线程
 * 一般都在后台运行,为其他线程提供服务,不能单独存在
 */
public class Test08 {
    public static void main(String[] args) {
        MyThread8 t1 = new MyThread8("守护线程");
        System.out.println("是守护线程吗?"+t1.isDaemon());
        t1.setDaemon(true);
        System.out.println("是守护线程吗?"+t1.isDaemon());
        t1.start();
        new MyThread8("rubbish");

        for (int i = 1; i <= 100; i++) {
            System.out.println(Thread.currentThread().getName() + "****" + i);
        }
    }
}

class MyThread8 extends Thread {
    public MyThread8(String name) {
        super(name);
        setDaemon(true);
        start();
    }

    @Override
    public void run() {
        while (true) {
            System.out.println(Thread.currentThread().getName() + "正在进行垃圾回收!");
        }
    }

}

中断线程

/*
 * interrupt()中断线程
 */
public class Test09 {
    public static void main(String[] args) {
        MyThread9 mt = new MyThread9();
        Thread thread = new Thread(mt, "first");
        thread.start();

        for(int i=1;i<=20;i++){
            System.out.println(Thread.currentThread().getName() + "***");
        }

        try {
            Thread.sleep(3000);//主线程入睡3秒
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        //中断线程一的休眠
        thread.interrupt();
    }
}

class MyThread9 implements Runnable {
    int num = 1;

    @Override
    public void run() {
        while (true) {
            if(num==10){
                try {
                    System.out.println(Thread.currentThread().getName()+"线程即将入睡10秒");
                    Thread.sleep(10000);
                } catch (InterruptedException e) {
                    System.out.println("我会捶醒了。。。。");
                    //e.printStackTrace();
                }
            }
            System.out.println(Thread.currentThread().getName() + "***" + num++);
        }
    }

}
时间: 2024-08-25 06:12:10

JAVA学习笔记(四十)- 守护线程与中断线程的相关文章

JAVA学习笔记(四十九)- Swing相关组件

JFrame组件 import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; /* * Swing是在AWT基础上的扩展 * javax.swing包及其扩展包,组件的命名多以J开关 * * JFrame组件 */ public class Test08 { public static void main(String[] args) { JFrame frame=new JFrame("我的窗体&qu

JAVA学习笔记(四十八)- 适配器类 Adapter

适配器类 Adapter,对接口中的抽象方法进行空实现 import java.awt.Button; import java.awt.Frame; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEve

JAVA学习笔记(四十四)- AWT组件 (Abstract Window Toolkit)

Frame窗体组件 import java.awt.Color; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; /* * Frame窗体组件 */ public class Test01 { public static void main(String[] args) { Frame frame=new Frame("我的窗体"); //创建窗

JAVA学习笔记(四十五) - 布局管理器

FlowLayout流式布局管理器 /* * FlowLayout流式布局管理器 */ public class Test03 { public static void main(String[] args) { Frame frame=new Frame("My Frame"); Button btn1=new Button("按钮1"); Button btn2=new Button("按钮2"); Button btn3=new Butto

JAVA学习笔记(四十二)-生产者消费者模型

wait().notify() /* * wait().notify() * * 1.两个方法都只能在synchronized代码块中执行,因为要对持有锁的线程操作,只有同步中才有锁 * 2.两个方法在操作同步中的线程时,必须要标识所操作线程持有的对象锁 * 3.等待和唤醒必须是同一个对象锁 */ public class Test05 { public static void main(String[] args) { MyThread3 mt=new MyThread3(); Thread

JAVA学习笔记(四十六)- 内部类详解

成员内部类 /* * 内部类 * 定义在另一个类中的类,称为内部类Inner Class * 包含内部类的类,称为外部类Outer Class * * 应用场合:在窗体程序中进行事件处理 * * 分类: * 成员内部类 * 局部内部类 * 静态内部类 * 匿名内部类 * * 成员内部类 * 1.在外部类中访问内部类,可以访问内部类中的所有成员,包含private修饰的 * 2.在外部类外访问内部类,不能访问内部类中的private修饰的成员 * 3.在内部类中访问外部类,直接访问,如果内部类和外

“全栈2019”Java多线程第四十二章:获取线程与读写锁的保持数

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多线程第四十二章:获取线程与读写锁的保持数 下一章 "全栈2019"Java多线程第四十三章:查询是否有线程在等待读写锁 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复&quo

【Unity 3D】学习笔记四十二:粒子特效

粒子特效 粒子特效的原理是将若干粒子无规则的组合在一起,来模拟火焰,爆炸,水滴,雾气等效果.要使用粒子特效首先要创建,在hierarchy视图中点击create--particle system即可 粒子发射器 粒子发射器是用于设定粒子的发射属性,比如说粒子的大小,数量和速度等.在创建完粒子对象后,在右侧inspector视图中便可以看到所有的粒子属性: emit:是否是使用粒子发射器. min size:粒子最小尺寸. max size:粒子最大尺寸. min energy:粒子的最小生命周期

【Unity 3D】学习笔记四十六:输入与控制——键盘事件

在游戏中,玩家控制主角移动,按键攻击,选择行走.都需要在程序中监听玩家的输入.unity为开发者提供了input库,来支持键盘事件,鼠标事件以及触摸事件.本文主要回顾键盘事件,以后会逐文复习鼠标以及触摸事件. 键盘事件 一般的PC键盘有104个不同的按键,在程序中通过监听这些按键事件,从而进一步执行逻辑操作.如:射击游戏中,W表示前进,S表示后退,A表示左移,D表示右移. 按下事件 在脚本中,用input.GetKeyDown( )方法将按键值作为参数,监听此按键是否被按下.按下返回true,否