首页
统计
关于
Search
1
Sealos3.0离线部署K8s集群
1,079 阅读
2
类的加载
739 阅读
3
Spring Cloud OAuth2.0
725 阅读
4
SpringBoot自动装配原理
690 阅读
5
集合不安全问题
583 阅读
笔记
Java
多线程
注解和反射
JVM
JUC
设计模式
Mybatis
Spring
SpringMVC
SpringBoot
MyBatis-Plus
Elastic Search
微服务
Dubbo
Zookeeper
SpringCloud
Nacos
Sentinel
数据库
MySQL
Oracle
PostgreSQL
Redis
MongoDB
工作流
Activiti7
Camunda
消息队列
RabbitMQ
前端
HTML5
CSS
CSS3
JavaScript
jQuery
Vue2
Vue3
Linux
容器
Docker
Kubernetes
Python
登录
Search
标签搜索
Java
CSS
mysql
RabbitMQ
JavaScript
Redis
JVM
Mybatis-Plus
Camunda
多线程
CSS3
Python
Spring Cloud
注解和反射
Activiti
工作流
SpringBoot
Mybatis
Spring
html5
蘇阿細
累计撰写
388
篇文章
累计收到
4
条评论
首页
栏目
笔记
Java
多线程
注解和反射
JVM
JUC
设计模式
Mybatis
Spring
SpringMVC
SpringBoot
MyBatis-Plus
Elastic Search
微服务
Dubbo
Zookeeper
SpringCloud
Nacos
Sentinel
数据库
MySQL
Oracle
PostgreSQL
Redis
MongoDB
工作流
Activiti7
Camunda
消息队列
RabbitMQ
前端
HTML5
CSS
CSS3
JavaScript
jQuery
Vue2
Vue3
Linux
容器
Docker
Kubernetes
Python
页面
统计
关于
搜索到
11
篇与
的结果
2020-11-25
线程休眠
线程休眠sleep(时间)指当前线程阻塞的毫秒数sleep存在异常InterruptedExceptionsleep时间达到后线程进入就绪状态可以模拟网络延时,倒计时等每一个对象都有一个锁,sleep不会释放锁模拟倒计时实例:package com.thread.state; import java.text.SimpleDateFormat; import java.util.Date; /** * @Author suaxi * @Date 2020/11/25 17:24 */ public class TestSleep2 { public static void main(String[] args){ //tenDown(); //打印当前系统时间 Date date = new Date(System.currentTimeMillis()); while (true){ try { Thread.sleep(1000); System.out.println(new SimpleDateFormat("HH:mm:ss").format(date)); date = new Date(System.currentTimeMillis()); //更新当前系统时间 } catch (InterruptedException e) { e.printStackTrace(); } } } //模拟倒计时 public static void tenDown() throws InterruptedException { int num = 10; while (true){ Thread.sleep(1000); System.out.println(num--); if (num<=0){ break; } } } }
2020年11月25日
82 阅读
0 评论
0 点赞
2020-11-25
线程状态
线程状态
2020年11月25日
44 阅读
0 评论
0 点赞
2020-11-25
多线程
Process(进程):程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念进程是执行程序的一次执行过程,它是一个动态的概念,是系统资源分配的单位一个进程中至少有一个线程,也可以包含若干个线程很多多线程是模拟出来的,真正的多线程是指有多个cpu,即多核。如果是模拟出来的多线程,即在单个cpu的情况下,在同一个时间点,cpu只能执行一个代码,因为切换得很快,所以就有同时执行的错觉Thread(线程):线程是独立执行的路径在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程main()称之为主线程,为系统的入口,用于执行整个程序在一个进程中如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,其执行的先后顺序不能人为干预对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制线程会带来额外的开销,如cpu调度时间,并发控制开销等每个线程在自己的工作内存交互,内存控制不当会造成数据不一致普通方法调用和多线程调用run()方法:只有主线程一条执行路径调用start()方法:多条执行路径,主线程和子线程并行交替执行小结1、继承Thread类子类继承Thread类具备多线程能力启动线程:子类对象.start()不建议使用:避免OOP单继承局限性2、实现Runnable接口实现接口Runnable具有多线程能力启动线程:传入目标对象+Thread对象.start()推荐使用:避免单继承局限性,灵活方便,方便同一个对象被多个线程使用//一份资源 TestThread t = new TestThread(); //多个代理 new Thread(t1,"多线程测试01").start(); new Thread(t1,"多线程测试02").start(); new Thread(t1,"多线程测试03").start();3、实现Callable接口实现Callable接口,需要返回值类型重写call方法,需要抛出异常创建目标对象创建执行服务:ExecutorService ser = Executors.newFixedThreadPool(3); //3为线程池数量提交执行:Future result = ser.submit();获取结果:Boolean rs1 = result.get();关闭服务:ser.shutdownNow();
2020年11月25日
43 阅读
0 评论
0 点赞
1
2