首页 > 编程语言 >Java - 多线程

Java - 多线程

时间:2024-08-11 11:05:46浏览次数:13  
标签:MyRunnable Java 对象 submit 线程 new pool1 多线程

三种实现方式

常用成员方法

1.线程name默认“Thread-”+"序号"
2.可以通过重写构造方法在创建时给线程命名

线程的生命周期与状态


同步代码块

  • 格式
synchronized(锁对象){
  操作共享数据的代码
}

1.锁对象随机,但只要是有static修饰的唯一对象,一般写本类class文件,如MyThread.class
2.必须写在循环内部

同步方法

修饰符 synchronized 返回值类型 方法名(方法参数) {...}
  • 特点1:同步方法是锁住方法里面所有的代码
  • 特点2:锁对象不能自己指定
    • 非静态:this
    • 静态:当前类的字节码文件对象

lock锁

生产者和消费者(等待唤醒机制)

主要用wait和notifyAll

阻塞队列方式实现

  • ArrayBlockingQueue
    底层数组,有界
  • LinkedBlockingQueue
    底层链表,最大为int最大值

put数据时:放不进去,会等着,也叫做阻塞。
take数据时:取出第一个数据,取不到会等着,也叫做阻塞

线程池


        //1.获取线程池对象
//        ExecutorService pool1 = Executors.newCachedThreadPool();//无上限
        ExecutorService pool1 = Executors.newFixedThreadPool(3);//有上限

        //2.提交任务
        pool1.submit(new MyRunnable());
        pool1.submit(new MyRunnable());
        pool1.submit(new MyRunnable());
        pool1.submit(new MyRunnable());
        pool1.submit(new MyRunnable());

        //3.销毁线程池(一般不销毁)
//        pool1.shutdown();

自定义线程池



标签:MyRunnable,Java,对象,submit,线程,new,pool1,多线程
From: https://www.cnblogs.com/through287/p/18352750

相关文章

  • 节假日配置初始化 redis缓存方案及@PostConstruct注解,Cache方案GuavaUtils.java工具类
    节假日配置初始化redis缓存方案及@PostConstruct注解,Cache方案GuavaUtils.java工具类启动报错:本机,在jenkins上面没有报错?包括嵌套的注入Beanjava静态代码块和spring@value等注解注入顺序https://www.cnblogs.com/oktokeep/p/15530697.html/***节假日配置初始化redis缓存......
  • Java开发环境安装笔记
    目录JDK的版本Java8Java9Java11(LTS)Java17(LTS)Java21JDK的环境变量设置JAVAHOME和PATH环境变量CLASSPATH环境变量多个SDK版本切换又双叒叕换了一个电脑,又双叒叕得重新折腾各种软件的安装,记录一下吧...软件安装中,最麻烦的莫过于JAVA的编程环境安装了,Java运行环境区......
  • java.time.OffsetTime类
    java.time.OffsetTime类表示在ISO-8601日历系统中与UTC/Greenwich的偏移量的时间,例如:10:15:30+01:00。类声明以下是java.time.OffsetTime类的声明-publicfinalclassOffsetTimeextendsObjectimplementsTemporal,TemporalAdjuster,Comparable<OffsetTim......
  • java.time.OffsetDateTime类
    java.time.OffsetDateTime类表示ISO-8601日历系统中与UTC/Greenwich的偏移量的日期时间,例如2007-12-03T10:15:30+01:00。类声明以下是java.time.OffsetDateTime类的声明-publicfinalclassOffsetDateTimeextendsObjectimplementsTemporal,TemporalAdjust......
  • Java工具类封装微服务间HTTP通信
    在微服务架构中,服务之间通常通过HTTP协议进行通信。为了简化这一过程,我们可以创建一些工具类来封装HTTP请求的发送逻辑。本篇文章将介绍如何使用Java来创建这样的工具类,并分别演示使用ApacheHttpClient和SpringFramework中的RestTemplate来发送HTTPGET请求的方法。1.引言......
  • Java计算机毕业设计律所管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着法律服务行业的快速发展,律师事务所面临着日益复杂的业务管理和运营挑战。传统的手工管理方式已难以满足律所高效、精准、透明的管理需求。律师的......
  • Java计算机毕业设计美丽校园打卡系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着信息技术的飞速发展与教育理念的持续革新,智慧校园建设已成为提升学校管理水平、增强学生参与度及保障师生健康安全的重要途径。在当前全球公共卫......
  • Java计算机毕业设计客户管理平台的设计及实现(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着市场竞争的日益激烈,企业对于客户关系管理的重视程度不断提升。传统的客户管理方式已难以满足企业精准营销、个性化服务及高效沟通的需求。在数字......
  • Java计算机毕业设计酒店管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着旅游业的蓬勃发展,酒店行业作为其中的重要组成部分,面临着日益激烈的市场竞争和客户需求多样化的挑战。传统的手工管理模式已难以适应酒店业务规模......
  • Java项目【尚庭公寓】从0开始Java项目实战(一)
    Java项目【尚庭公寓】从0开始Java项目实战(一)1.项目介绍1.1项目业务概述1.2移动端介绍1.3后台管理系统1.4核心业务流程1.5项目技术概述1.6数据库设计2.项目初始化准备2.1导入数据库2.2创建工程2.3项目初始配置2.3.1SpringBoot依赖配置2.3.2创建application.......