进程和线程
文章平均质量分 89
极致千叶
这个作者很懒,什么都没留下…
展开
-
JUC与线程安全、非安全容器
目录JUCReentrantLock:可重入锁Semaphore:信号量(可以实现限流)CountDownLatch:计数器:判断线程池的任务是否已经全部执行完CyclicBarrier:循环屏障(线程分组的阻塞)非线程安全容器线程安全容器HashMap知识点JUCjava.util.concurrent 下的类就叫 JUC 类,JUC 下典型的类有:ReentrantLockSemaphoreCountDownLatchCyclicBarrierReentrantLock:可重入锁Sema原创 2022-04-19 11:55:00 · 104 阅读 · 0 评论 -
单例模式与锁策略
单例模式1.单例模式1.1饿汉模式1.2懒汉模式1.单例模式单例模式具体的实现方式, 分成 “饿汉” 和 “懒汉” 两种:饿汉方式(线程安全,程序启动之后,里面创建单例对象)懒汉方式(使用时才加载,可以避免资源不必要的浪费;当有程序调用单例对象的时候才初始化)单例模式的实现步骤(无论饿汉还是懒汉实现的模式都是一样的):设置私有的构造函数;(为了防止其他类直接new此对象)声明一个私有的对象属性;提供一个公共的获取实例的方法。默认的懒汉模式是非线程安全的,使用要对懒汉进行优化,优化改进:原创 2022-04-18 15:41:40 · 1389 阅读 · 2 评论 -
线程池实现
这里写目录标题1.线程池1.1定义:1.2线程池的优点1.3线程池的使用传统线程的缺点:1.每次都需要创建和消耗线程,是需要消耗系统资源的2.线程没有任务管理的功能,当任务量比较大的时候没有任务队列对任务进行管理或者是拒绝任务1.线程池1.1定义:线程池就是使用池化技术管理线程和使用线程的一种机制1.2线程池的优点1.利用线程池可以复用线程,控制最大并发数(避免了频繁创建和消耗线程池所带来的性能消耗)2.实现任务缓存和任务拒绝机制3.实现延迟任务执行1.3线程池的使用两种实现方式1原创 2022-04-16 08:30:59 · 1742 阅读 · 0 评论 -
死锁和线程通讯
死锁和线程通讯死锁死锁定义死锁死锁定义死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。也就是两个线程拥有锁的情况下,又在尝试获取对方锁,从而造成程序一直阻塞的情况。代码示例:import java.util.concurrent.TimeUnit;/** * 死锁示例 */public class Thread18 { public static void main(String[] args)原创 2022-04-04 12:49:14 · 168 阅读 · 0 评论 -
锁(synchronized和Lock)
锁(synchronized和lock)1.synchronized① synchronized 基本使用② synchronized 特性synchronized是如何实现的?(面试问题)使用锁是JAVA中解决线程安全问题的最主要的手段。JAVA中的锁主要有以下两种:1.内存锁 synchronized2.可重入锁 Lock(ReentrantLock)1.synchronized① synchronized 基本使用synchronized 的基本用法有以下 3 种:1.修饰静态方法原创 2022-04-01 20:27:57 · 2594 阅读 · 0 评论 -
线程的状态和安全问题
线程的状态1.线程状态1.1 所有线程状态1.2 线程状态转变2.线程安全问题2.1 线程安全问题导致的原因:1.线程状态1.1 所有线程状态for (Thread.State item : Thread.State.values()) { System.out.println(item);}线程状态(6种)NEW(新建状态,当线程被新建,但是为启动(start方法)之前的状态)RUNNABLE(运行状态【运行】{得到时间片运行中状态}【就绪】{未得到时间片就绪状态}原创 2022-03-28 15:21:03 · 81 阅读 · 0 评论 -
Thread 类及常见方法
1.Thread 类及常见方法1.1Thread 的常见构造方法1.2 Thread 的几个常见属性ID 是线程的唯一标识,不同线程不会重复;名字是可以重复的名称是各种调试工具用到状态表示线程当前所处的一个情况,下面我们会进一步说明优先级高的线程理论上来说更容易被调度到,优先级是int类型,线程优先级1-10,最小的优先级是1,最大的优先级是10,默认的优先级是5关于后台线程,需要记住一点:JVM会在一个进程的所有非后台线程结束后,才会结束运行。是否存活,即简单的理解,为 run 方法是原创 2022-03-28 15:06:28 · 1307 阅读 · 0 评论 -
枚举和Lambda 表达式
枚举和Lambda 表达式枚举使用方式:枚举常用方法枚举优缺点Lambda 表达式为什么要用 Lambda?Lambda 语法枚举使用方式:enum关键字:使用英文逗号枚举命名格式:所有的枚举值使用全部字母大写的形式定义它的优点有以下几个:增强了代码的可读性。减少了传递参数的错误概率。switch 判断更方便,语法清晰。代码足够简洁、优雅。枚举常用方法compareTo方法返回的是下标相减所得到的数枚举优缺点优点:增强了代码的可读性。减少了传递参数的错误概率。swi原创 2022-03-20 11:47:06 · 597 阅读 · 0 评论 -
进程和线程
这里写目录标题1.计算机是如何工作的?1.1计算机的构成1.2冯诺依曼体系结构1.计算机是如何工作的?1.1计算机的构成现代的计算机, 大多遵守冯诺依曼体系结构.1.2冯诺依曼体系结构CPU 中央处理器: 进行算术运算和逻辑判断.存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)输入设备: 用户给计算机发号施令的设备.输出设备: 计算机个用户汇报结果的设备....原创 2022-03-18 13:46:33 · 624 阅读 · 0 评论