首页 > 其他分享 >线程-1

线程-1

时间:2023-03-22 09:11:15浏览次数:33  
标签:join Thread 主线 线程 new public

1、创建执行线程有两种方法

  • 扩展Thread类(重新run方法)    
     @Override
   public void run() {}
     new MyThread().start();//启动线程

 

  • 实现Runnable接口
  public class MyThread extends Thread{
@Override
public void run() {
System.out.println(getName() + "线程运行起来了");
}
}
new Thread(new MyRunnale()).start();//启动线程

2、join
主线程生成并启动了子线程,而子线程里要进行大量的耗时的运算(这里可以借鉴下线程的作用),当主线程处理完其他的事务后,需要用到子线程的处理结果,这个时候就要用到join();方法了。
解释一下,是主线程等待子线程的终止。也就是说主线程的代码块中,如果碰到了t.join()方法,此时主线程需要等待(阻塞),等待子线程结束了(Waits for this thread to die.),才能继续执行t.join()之后的代码块。
3、callable
callable和Runnable的区别是callable可以有返回值,也可以抛出异常的特性,而Runnable没有
@Override
public String call() throws Exception {
Thread.sleep(5000);
return "call方法的返回值";
}

标签:join,Thread,主线,线程,new,public
From: https://www.cnblogs.com/jiningning/p/17240573.html

相关文章

  • 线程
    线程是调度CPU资源的最小单位,线程模型分为KLT模型与ULT模型,JVM使用的是KLT模型,java线程与OS线程保持1:1的映射关系,也就是说有一个java线程也会在操作系统里有一个对应的线......
  • java线程池相关问题
    线程池有几种拒绝策略?当线程池的线程数达到最大线程数时,需要执行拒绝策略。拒绝策略需要实现RejectedExecutionHandler接口,并实现rejectedExecution(Runnabler, T......
  • 【Thread -- 1.1】 实现多线程的正确姿势
    【Thread--1.1】实现多线程的正确姿势一、实现多线程的方法有几种--两种1、正确方法--Oraclle官方文档--2种[Oraclle官方文档](Overview(JavaPlatformSE8)(ora......
  • JUC——什么是线程死锁?如何避免死锁?
      下面通过一个例子来说明线程死锁,代码模拟了上图的死锁的情况(代码来源于《并发编程之美》):publicclassDeadLockDemo{privatestaticObjectresource1=......
  • 守护线程和用户线程
    用户线程:主线程的子线程,当主线程结束时,用户线程也会结束。守护线程:一种特殊的线程,它是在后台运行的,当所有用户线程结束时,守护线程也会随之结束。例如gc线程 publiccl......
  • fastapi多线程非阻塞启动
    1问题描述我在run.py文件下的主函数如下所示:importuvicornfromfastapiimportFastAPIapp=FastAPI(title="chatglm",description="开源版的chatglm接......
  • Java ThreadPoolTaskExecutor 线程池的常见问题
    JavaThreadPoolTaskExecutor线程池的常见问题 https://blog.csdn.net/weixin_43611528/article/details/123083314 重要参数corePoolSize:核心线程数,常开的线程数,默......
  • 【python】多线程并发,rpc接口性能测试
    1、官方文档https://docs.python.org/3/library/concurrent.futures.html 2、安装python3.x中自带了concurrent.futures模块python2.7需要安装futures模块,使用命令......
  • 面试常考:C#用两个线程交替打印1-100的五种方法
      "C#用两个线程交替打印1-100的五种方法"是.NET工程师面试多线程常考的试题之一,主要考察对C#语法和对多线程的熟悉程度。本文将用5种方法实现这个面试题。方法1:使用M......
  • javaSE-day12(多线程)
    1.多线程的常用方法Thread提供了很多与线程操作相关的方法方法:publicvoidrun():线程的任务方法publicvoidstart():启动线程publicStringgetName():获取当前......