首页 > 其他分享 >线程的特殊方法

线程的特殊方法

时间:2024-10-19 14:34:20浏览次数:1  
标签:特殊 Thread void class 线程 Override 方法 public

一、休眠线程

public static void sleep(long millis)

class MyThread2 extends Thread{
    @Override
    public void run() {
        System.out.println("我是李刚,现在开始睡觉了...");
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("我醒了,现在开始学习!!");
    }
}
public class ThreadDemo2 {
    public static void main(String[] args) {
        MyThread2 myThread2 = new MyThread2();
        myThread2.start();
    }
}

二、加入线程:

public final void join()

class MyThread3 extends Thread {
    @Override
    public void run() {
        for (int i = 1; i <= 200; i++) {
            System.out.println(getName() + "-" + i);
        }
    }
}

public class ThreadDemo3 {
    public static void main(String[] args) throws InterruptedException {
        MyThread3 t1 = new MyThread3();
        MyThread3 t2 = new MyThread3();
        MyThread3 t3 = new MyThread3();


        t1.start();
        t1.join();

        t2.start();
        t3.start();
    }
}

三、礼让:

public static void yield()

class MyThread4 extends Thread{
    @Override
    public void run() {
        for(int i=1;i<=200;i++){
            System.out.println(getName()+"- "+i);
            Thread.yield();
        }
    }
}

public class ThreadDemo4 {
    public static void main(String[] args) {
        MyThread4 t1 = new MyThread4();
        MyThread4 t2 = new MyThread4();

        t1.start();
        t2.start();
    }
}

四、后台线程:

public final void setDaemon(boolean on)

/*
    后台线程:
        public final void setDaemon(boolean on)


    用户线程:优先级高于守护线程
    守护线程【后台线程】:当一个程序没有了用户线程,守护线程也就没有了
 */

class MyThread5 extends Thread{
    @Override
    public void run() {
        for(int i=1;i<=200;i++){
            System.out.println(getName()+"- "+i);
        }
    }
}

public class ThreadDemo5 {
    public static void main(String[] args) {
        MyThread5 t1 = new MyThread5();
        MyThread5 t2 = new MyThread5();
        MyThread5 t3 = new MyThread5();

        t1.setName("刘备");
        t2.setName("关羽");
        t3.setName("张飞");

        //将t2和t3线程设置为守护线程
        t2.setDaemon(true);
        t3.setDaemon(true);

        t1.start();
        t2.start();
        t3.start();
    }
}

五、中断线程:

public final void stop()
public void interrupt()

/*
    中断线程:
        public final void stop()
        public void interrupt()

    java所有的线程要想变成运行状态,必须经过抢cpu执行权

 */
class MyThread6 extends Thread{
    @Override
    public void run() {
        System.out.println("胡海祥准备睡觉了....睡足10秒钟");
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("睡醒了,继续敲代码!!!");
    }
}

public class ThreadDemo6 {
    public static void main(String[] args) {
        MyThread6 t1 = new MyThread6();
        t1.start();

        try {
            Thread.sleep(5000);
//            t1.stop();
            t1.interrupt();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

标签:特殊,Thread,void,class,线程,Override,方法,public
From: https://www.cnblogs.com/ndmtzwdx/p/18475846

相关文章

  • python的特殊方法 str
    特殊方法str"""特殊方法__str__ __str__方法用于返回字符串形式,通常用于输出对象时使用 这个方法返回的是一个字符串,用于描述对象的状态或者内容   重写__str__方法,可以用于定义输出对象的内容,使输出的内容更详细   当我在使用print函数......
  • 在不丢失数据的情况下解锁锁定的 Android 手机的 4 种方法
    尽管您可以使用指纹解锁手机,但大多数智能手机都需要PIN码、图案或字母数字代码作为主密码。如果您有一段时间没有输入手机密码,很容易忘记。正是由于这个原因,即使您打开了指纹解锁,大多数智能手机也会让您每天至少输入一次PIN。即使采取了所有这些额外措施,您仍有可能忘记手机......
  • 适合初学者的最佳赏金方法
    适合初学者的最佳赏金方法论1.技术识别​ 首先确定正在使用的内容管理系统、服务器、技术、服务和API。检查这些特定版本是否存在任何已知漏洞。2.配置错误检查​ 接下来,系统地测试每个组件(服务器设置、内容管理系统、数据库等)中的错误配置。这些问题通常包括目录列表......
  • 《 C++ 修炼全景指南:十六 》玩转 C++ 特殊类:C++ 六种必备特殊类设计的全面解析
    摘要这篇博客深入探讨了六种C++特殊类的设计及其技术细节。首先,介绍了如何设计只能在堆上或栈上创建对象的类,通过控制构造函数的访问权限来限定对象的内存分配区域。接着,探讨了如何设计一个不能被拷贝的类,避免资源重复释放的问题。随后,介绍了如何防止类被继承以及单例模......
  • Linux系统重建Grub引导的方法
    一、问题出现的原因在安装双系统时,我们都是先安装Windows系统,再安装Linux系统,这样在启动计算机时,两个系统都可以被引导启动,并在开机界面可以进行选择。这是因为Linux使用的操作系统引导加载器Grub可以引导如Windows、Linux等多种操作系统,但是Windows的操作系统引导加载器不能......
  • 重置网站后台管理员密码方法
    重置网站后台管理员密码通常有几种方法,具体取决于网站或应用的架构和安全设置。下面是一些常见的方法:通过邮箱找回如果系统支持,可以通过注册时绑定的邮箱找回密码。一般会有一个“忘记密码”链接,点击后按照提示操作即可。数据库直接修改对于熟悉数据库操作的管理员来说......
  • Apple提出MM1.5:多模态大型语言模型微调的方法、分析和见解
    摘要我们介绍了MM1.5,一个新的多模态大型语言模型(MLLM)家族,旨在增强在富文本图像理解、视觉参照和定位以及多图像推理方面的能力。在MM1架构的基础上,MM1.5采用以数据为中心的模型训练方法,系统地探索了整个模型训练生命周期中各种数据混合的影响。这包括用于持续预......
  • java_day18_多线程、线程安全问题、死锁、等待唤醒机制
    一、线程1、多线程进程:是系统进行资源分配和调用的独立单位,每一个进程都有它自己的内存空间和系统资源。举例:IDEA,阿里云盘,wegame,steam线程:是进程中的单个顺序控制流,是一条执行路径一个进程如果只有一条执行路径,则称为单线程程序。一个进程如果有多条执行......
  • 线程安全案例
    多窗口售票使用实现Runnable接口的方式实现售票问题1:我们加入了循环和延迟模拟现实生活售票的场景后发现1.出现售卖重复的票号【计算机中cpu的计算是具备原子性的】2.出现非法的票号【随机性导致的,cpu小小的时间片,足以执行很多次】上述的......
  • 使用AES 128位加解密,加解密模式采用CBC,填充模式采用PKCS5Padding的Java工具方法示例
    importjavax.crypto.Cipher;importjavax.crypto.spec.IvParameterSpec;importjavax.crypto.spec.SecretKeySpec;importjava.util.Base64;publicclassAESUtils{privatestaticfinalStringAES_ALGORITHM="AES/CBC/PKCS5Padding";private......