多线程
Al_0922
这个作者很懒,什么都没留下…
展开
-
使用线程池
使用线程池 背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影 响很大。 u 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。 可以避免频繁创建销毁、实现重复利用。类似生活中的公共交通工具。 好处: 提高响应速度(减少了创建新线程的时间) 降低资源消耗(重复利用线程池中线程,不需要每次都创建) 便于线程管理(…) corePoolSize:核心池的大小 maximumPoolSize:最大线程数 keepAliveTime:线程没有任务时最多保持多长时间后会终止原创 2021-06-28 22:12:41 · 100 阅读 · 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 · 146 阅读 · 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 · 116 阅读 · 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 · 73 阅读 · 0 评论 -
进程和线程的区别以及线程创建的三种方式
进程和线程的区别: 进程:一个执行程序的一个执行过程,是动态的,是系统资源分配的单位。而程序是指令和数据的有序集合,是静态的 线程:是一个执行过程中的一个执行序列,一个线程中有多个线程。线程是CPU调度和执行的单位 线程创建的三种方式: 继承Thread类 public class Test02 { public static void main(String[] args) { myTheat1 t1 = new myTheat1(); t1.start(原创 2021-06-28 15:48:35 · 200 阅读 · 0 评论