首页 > 其他分享 >多线程常用方法

多线程常用方法

时间:2023-12-14 22:18:25浏览次数:24  
标签:常用 多线程 Thread void t2 线程 main 方法 public

public class ThreadDemo {
  public static void main(String[] args) throws InterruptedException {
    /*
    String getName() 返回此线程的名称
    void setName(String name) 设置线程的名字(构造方法也可以设置名字)
    细节:
    1、如果我们没有给线程设置名字,线程也是有默认的名字的
    格式:Thread-X(X序号,从0开始的)
    2、如果我们要给线程设置名字,可以用set方法进行设置,也可以构造方法设置

    static Thread currentThread() 获取当前线程的对象
    细节:
    当JVM虚拟机启动之后,会自动的启动多条线程
    其中有一条线程就叫做main线程
    他的作用就是去调用main方法,并执行里面的代码
    在以前,我们写的所有的代码,其实都是运行在main线程当中

    static void sleep(long time) 让线程休眠指定的时间,单位为毫秒
    细节:
    1、哪条线程执行到这个方法,那么哪条线程就会在这里停留对应的时间
    2、方法的参数:就表示睡眠的时间,单位毫秒
      1 秒= 1000毫秒
    3、当时间到了之后,线程会自动的醒来,继续执行下面的其他代码
    */

    //1.创建线程的对象
    MyThread t1 = new MyThread("飞机");
    MyThread t2 = new MyThread("坦克");

    //2.开启线程

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

    //哪条线程执行到这个方法,此时获取的就是哪条线程的对象
    /* Thread t = Thread.currentThread();
    String name = t.getName();
    System.out.println(name);//main*/

    /*System.out.println("11111111111");
    Thread.sleep(5000);
    System.out.println("22222222222");*/

  }
}

 

public class ThreadDemo {
  public static void main(String[] args){
    /*
    setPriority(int newPriority) 设置线程的优先级
    final int getPriority() 获取线程的优先级
    */

    //创建线程要执行的参数对象
    MyRunnable mr = new MyRunnable();
    //创建线程对象
    Thread t1 = new Thread(mr,"飞机");
    Thread t2 = new Thread(mr,"坦克");

    t1.setPriority(1);
    t2.setPriority(10);

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

 

public class ThreadDemo {
  public static void main(String[] args) {
  /*
  final void setDaemon(boolean on) 设置为守护线程
  细节:
  当其他的非守护线程执行完毕之后,守护线程会陆续结束
  通俗易懂:
  当女神线程结束了,那么备胎也没有存在的必要了
  */

 

    MyThread1 t1 = new MyThread1();
    MyThread2 t2 = new MyThread2();

    t1.setName("女神");
    t2.setName("备胎");

    //把第二个线程设置为守护线程(备胎线程)
    t2.setDaemon(true);

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

  }
}

 

public class ThreadDemo {
  public static void main(String[] args) {
  /*
  public static void yield() 出让线程/礼让线程

  */

  MyThread t1 = new MyThread();
  MyThread t2 = new MyThread();

  t1.setName("飞机");
  t2.setName("坦克");

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

}
}

public class MyThread extends Thread{

  @Override
  public void run() {//"飞机" "坦克"
  for (int i = 1; i <= 100; i++) {

  System.out.println(getName() + "@" + i);
  //表示出让当前CPU的执行权 比如飞机线程走到这个方法让出线程 但是还有可能再抢到
  Thread.yield();
  }
  }
}

public class ThreadDemo {
  public static void main(String[] args) throws InterruptedException {
  /*
  public final void join() 插入线程/插队线程
  */

   MyThread t = new MyThread();

  t.setName("土豆");
  t.start();

  //表示把t这个线程,插入到当前线程之前。
  //t:土豆
  //当前线程: main线程
  t.join();

  //执行在main线程当中的
  for (int i = 0; i < 10; i++) {
  System.out.println("main线程" + i);
  }

}
}

标签:常用,多线程,Thread,void,t2,线程,main,方法,public
From: https://www.cnblogs.com/haoming-1/p/17902061.html

相关文章

  • Debian 包冲突处理方法
    linux-cpupower包和linux-tools-common包中同时包含了文件/usr/bin/cpupower。导致在已经安装了linux-cpupower的环境上,安装linux-tools-common包报错。正在解包linux-tools-common(4.15.0-30deepin.31)...dpkg:处理归档/var/cache/apt/archives/linux-tools-common_4.15.......
  • [docker] docker常用命令
    docker的命令是使用docker中重要的一环,这里只列出了部分命令,更多的命令可以参见docker文档https://docs.docker.com/engine/reference/run/启动命令这里的docker是安装在centos8上的systemctlstartdocker//启动docker服务systemctlstopdocker//停止docker服务sy......
  • 多线程的三种实现方式
    1.什么是多线程有了多线程就可以让程序同时进行多件事情。2.多线程的作用提高效率3.应用场景只要是想多件事情同时运行就需要用到多线程。4.并发和并行并发:在同一时刻,有多个指令在单个cpu上交替运行并行:在同一时刻,有多个指令在多个cpu上同时运行并发和并行有可能同时发生......
  • 形式化建模与分析方法知识点
    这个是比较针对期末复习的知识点整理,根据我的复习随缘更新,如果发现有些部分没写那就是因为我还没复习到(大概)(PS:这些知识点中有很大部分来自老师的PPT,也有一部分来源于学长学姐整理的资料,最后也有一小部分来源于我自己的总结)一.简答题1.串行系统的程序正确性定义。......
  • Docker使用手册--给你通用常用命令
    卸载JDKrpm-qa|grep-ijavarpm-qa|grep-ijava|xargs-n1rpm-e--nodeps安装JDKtar-zxvfjdk-8u351-linux-x64.tar.gzvim/etc/profileexportJAVA_HOME=/home/jdk/jdk-11.0.19exportJRE_HOME=${JAVA_HOME}/jreexportCLASSPATH=.:${JAVA_HOME}/lib:$......
  • Day30 了解什么是方法
    什么是方法?System.out.printin(),那么它是什么呢?(System是类out是一个对象printin则是方法)​意思是调用系统中的一个对象中的发放Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程......
  • k8s 常用命令
    查看apiserver审计日志:grep'"code":504'audit-2023-01-05T02-53-58.676.log|grep-Po'(?<="requestURI":")[^"]*'|sort|uniq-c|sort-rn|head-n100grep'"code":504'audit-2023-01......
  • 2023 idea 常用插件
    AlibabaJavaCodingGuidelines阿里巴巴代码规范检查插件AiXcoderCodeCompleter代码提示补全插件ArthasIdeaArthas是阿里开源的Java在线诊断工具,该插件可以自动生成Arthas在线Java代码诊断命令AutofillingJavacallarguments代码生成插件。通过快捷......
  • PHP复用CURL简单文件上传的2种方法
    方法一:curlFile客户端$filePath='head.txt';//创建CURLFile对象$file=newCURLFile($filePath);//创建cURL资源$ch=curl_init();//设置cURL选项curl_setopt($ch,CURLOPT_URL,$your_upload_url);//替换为实际的上传接口URL......
  • js实现深拷贝复制的方法
    utils/deepCopy.jsexportdefaultfunctiondeepCopy(obj){//深拷贝方法if(typeofobj!=='object'||obj===null){ returnobj;}letcopy;if(objinstanceofArray){ copy=[]; for(leti=0;i<obj.length;i++){ copy[i]=d......