多线程
线程的简述
衰小孩、519
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多线程总结
线程的创建 同步方法、同步块和锁 线程间通信 线程池原创 2021-09-28 15:10:17 · 91 阅读 · 0 评论 -
线程池的了解
线程池意义 背景:经常创建和销毁,使用量特别大的资源,比如并发情况下的线程,对性能影响很大 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中,可以避免频繁创建销毁,实现重复利用,类似生活中公共交通工具 优势: 提高响应速度(减少了创建新线程的时间) 降低资源消耗(重复利用线程池中线程,不需要每次都创建) 便于线程管理: (1)corePoolSize:核心池大小 (2)maximumPoolSize:最大线程数 (3)keepAliveTime:线程没有任务时最多保持多长时间后会原创 2021-09-28 15:05:57 · 124 阅读 · 0 评论 -
线程协助与通信
线程通信分析 在生产者消费者问题中,仅有synchronized是不够的,synchronized可阻止并发更新同一个共享资源,实现了同步,synchronized不能用来实现不同线程之间的消息传递(通信) JAVA提供了几个方法解决线程之间的通信问题 wait():表示线程一直等待,直到其他线程通知,与sleep不同,会释放锁 wait(long timeout):等待指定毫秒数 notify():唤醒一个处于等待状态的线程 notifyAll():唤醒同一个对象上所有调用wait()方法的线程,优原创 2021-09-28 14:46:50 · 119 阅读 · 0 评论 -
Lock锁
Lock锁 ReentrantLock类实现了Lock,它拥有与synchronized相同的并发性和内存意义,在实现线程安全的控制中,比较常用的是ReentrantLock,可以显示加锁、释放锁 Lock是显式锁(必须手动开启和关闭),synchronized是隐式锁,出了作用域自动释放 Lock只有代码块锁,synchronized有代码块锁和方法锁 使用Lock锁,JVM将花费较少的时间来调度线程,性能更好,并且具有更好的扩展性(提供更多的子类) 优先使用顺序:Lock>同步代码块(已经进入了原创 2021-09-28 14:04:13 · 106 阅读 · 0 评论 -
线程同步机制
同步进程 同步形成条件:队列+锁 锁机制 由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中被访问时的正确性,在访问时加入锁机制 synchronized,当一个线程获得对象的排他锁,独占资源,其他线程必须等待,使用后释放锁即可,但存在以下问题: 一个线程持有锁会导致其他所有需要此锁的线程挂起 在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题 如果一个优先级高的线程等待一个优先级低的线程释放锁,会导致优先级倒置,引起性原创 2021-09-26 12:34:11 · 78 阅读 · 0 评论 -
守护线程简述
定义 线程分为用户线程与守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕,如后台记录操作日志、监控内存、垃圾回收等待原创 2021-09-26 12:04:27 · 113 阅读 · 0 评论 -
线程优先级
优先级概念原创 2021-09-26 11:45:53 · 93 阅读 · 0 评论 -
线程的状态与方法
状态 创建、就绪、阻塞、运行、死亡 线程方法原创 2021-09-26 10:01:40 · 83 阅读 · 0 评论 -
Lambda表达式
存在意义 避免匿名内部类定义过多 可以使代码看起来很简洁 去掉了一堆没有意义的代码,只留下核心逻辑 函数式接口:任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。对函数式接口,我们可以通过lambda表达式来创建该接口的对象 ...原创 2021-09-26 09:57:24 · 79 阅读 · 0 评论 -
静态代理的原理
代理条件 真实对象和代理对象都要实现同一个接口 代理对象要代理真实角色原创 2021-09-26 09:48:56 · 175 阅读 · 0 评论 -
线程的创建
创建方式 Thread class:继承Thread类 实现 Runnable接口 实现 Callable接口 继承Thread(不推荐) 自定义线程类继承 Thread类 重写 run()方法 创建线程对象,调用 start 方法启动线程 线程不一定立即执行,CPU安排调度 因为JAVA是单继承,所以不推荐使用继承 Thread 类来创建线程 实现Runnable接口 定义MyRunnable类实现Runnable接口 实现run方法,编写线程执行体 创建线程对象,调用start方法启动线程原创 2021-09-25 21:28:21 · 85 阅读 · 0 评论 -
多线程简述
线程简介 程序:程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念 进程:进程则是程序的一次执行过程,它是一个动态的概念,是系统资源分配的单位 通常一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位 注意:很多的线程是模拟出来的,真正的多线程是指有多个CPU,即多核,如服务器。如果是模拟出来的多线程,即在一个CPU的情况下,在同一个时间点,CPU只能执行一个代码,因为切换的很快,所以有同时执行的错觉 核心概念 线程就是独立的原创 2021-09-21 21:34:30 · 76 阅读 · 0 评论
分享