多线程
Al_0922
这个作者很懒,什么都没留下…
展开
-
使用线程池
使用线程池背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。u 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。类似生活中的公共交通工具。好处:提高响应速度(减少了创建新线程的时间)降低资源消耗(重复利用线程池中线程,不需要每次都创建)便于线程管理(…)corePoolSize:核心池的大小maximumPoolSize:最大线程数keepAliveTime:线程没有任务时最多保持多长时间后会终止原创 2021-06-28 22:12:41 · 70 阅读 · 0 评论 -
Lock锁
Lock锁ReentrantLock 类实现了 Lock ,它拥有与 synchronized 相同的并发性和内存语义,在实现线程安全的控制中,比较常用的是ReentrantLock,可以显式加锁、释放锁。lock锁的使用比较方便lock()方法:上锁unlock()方法:释放锁import java.util.concurrent.locks.ReentrantLock;public class Test17 { public static void main(原创 2021-06-28 17:33:22 · 106 阅读 · 0 评论 -
线程状态及方法
线程的五个状态图解:线程的方法setPriority(int newPriority) 更改线程的优先级Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。线程的优先级用数字表示,范围从1~10. u Thread.MIN_PRIORITY = 1;Thread.MAX_PRIORITY = 10;Thread.NORM_PRIORITY = 5;使用以下方式改变或获取优先级getPriority() . setPrior原创 2021-06-28 16:44:28 · 82 阅读 · 0 评论 -
lambda表达式
Lambda表达式使用要求:有一个接口,里面只有一个抽象方法Lambda表达式:“函数式编程”其核心是把函数作为值主要作用:避免匿名内部类定义过多,简化,可以让你的代码看起来很简洁函数式接口的定义: 任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。public class Test16 { public static void main(String[] args) { Love love = null; love = (int a)原创 2021-06-28 15:57:31 · 54 阅读 · 0 评论 -
进程和线程的区别以及线程创建的三种方式
进程和线程的区别:进程:一个执行程序的一个执行过程,是动态的,是系统资源分配的单位。而程序是指令和数据的有序集合,是静态的线程:是一个执行过程中的一个执行序列,一个线程中有多个线程。线程是CPU调度和执行的单位线程创建的三种方式:继承Thread类public class Test02 { public static void main(String[] args) { myTheat1 t1 = new myTheat1(); t1.start(原创 2021-06-28 15:48:35 · 171 阅读 · 0 评论