多线程
线程就是独立的执行路径,在一个进程中如果开辟了多线程,线程的运行由调度器安排调度,先后顺序人为不可干预
zeng_jun_yv
title:
退役小曾
展开
-
使用线程池
JDk5.0起提供了线程池相关的API:ExecutorService和ExecutorsExectorService:真正的线程池接口。常见的子类ThreadPoolExecutorvoid execute(Runnable command):执行任务/命令,没有返回值,一般用来执行RunnableFuturesubmit(Callabletask):执行任务,有返回值,一般用来执行Callablevoid shutdown():关闭线程池Executors:工具类,线程池的工具类,用于.原创 2021-10-22 11:44:30 · 141 阅读 · 0 评论 -
并发协作模型“生产者/消费者模式“
管程法生产者:负责生产数据的模块(可能是方法,对象,线程,进程);消费者:负责处理数据的模块(可能是方法,对象,线程,进程);缓冲区:消费者不能直接使用生产者的数据,他们之间有个”缓冲区“生产者将生产好的数据放入缓冲区,消费者从缓冲区拿出数据package com.zeng.thread;//测试:生产者消费者模型-->利用缓冲区解决:管程法//生产者,消费者,产品,缓冲区public class TestPC { public static void main(Strin原创 2021-10-21 17:00:51 · 318 阅读 · 0 评论 -
Java多线程(review)
文章目录线程状态线程方法线程停止线程状态新建状态:使用 new 关键字和 Thread 类或其子类建立一个线程对象后,该线程对象就处于新建状态。它保持这个状态直到程序 start() 这个线程。就绪状态:当线程对象调用了start()方法之后,该线程就进入就绪状态。就绪状态的线程处于就绪队列中,要等待JVM里线程调度器的调度。运行状态:如果就绪状态的线程获取 CPU 资源,就可以执行 run(),此时线程便处于运行状态。处于运行状态的线程最为复杂,它可以变为阻塞状态、就绪状态和死亡状态。原创 2021-10-19 17:55:50 · 145 阅读 · 0 评论 -
多线程(简单实现)
继承Thread类//两条线程交替进行//创建线程方式一:继承Theard类,重写run方法,调用start开启线程//总结:注意,线程开启不一定立即执行,由CPU调度执行package com.zeng.demo01;public class TestTheard01 extends Thread{ @Override public void run() { //run方法线程体 for (int i = 0; i < 20; i++) {原创 2021-10-18 17:50:25 · 144 阅读 · 0 评论 -
静态代理模式(多线程底部原理)
静态代理模式总结(线程底部原理)真实对象和代理对象都要实现同一个接口代理对象要代理真实角色好处:- 代理对象可以做很多真实对象做不了的事情- 真实对象专注做自己的事情创建静态代理模式:一个抽象类(当前创建为函数式接口(只包含唯一一个抽象方法),可以使用Lambda表达式,简化代码)+真实角色(实现抽象类)+代理角色(实现抽象类)+代理方法实现构造方法调用抽象方法package com.zeng.demo01;//静态代理模式总结(线程底部原理)//真实对象和代理对象都要实现同一个接口原创 2021-10-19 16:12:04 · 167 阅读 · 0 评论 -
Lambda表达式(多线程实现)
推导lambda表达式Lambda表达式,避免匿名内部类定义过多,其实质属于函数式编程的概念;去掉一些没有意义的代码,只留下核心代码;当前接口为函数式接口(任何一个接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口),可以通过Lambda表达式来创建该接口的对象;1、实习类:接口+实现类+主线程调用抽象方法2、静态内部类(注意:加static) :接口+静态内部类实现接口+主线程调用抽象方法3、局部内部类:接口+主线程内实现接口+内部调用抽象方法4、匿名内部类,没有类的名称,必须借助原创 2021-10-19 16:30:41 · 894 阅读 · 0 评论