
多线程
文章平均质量分 94
mu.chun
这个作者很懒,什么都没留下…
展开
-
JUC并发编程
文章目录1 生产者消费者问题1.1 Synchronized 版1.2 JUC版1.3 Condition实现精准通知唤醒1.4 8 锁现象1.4.1 锁问题 1.11.4.2 锁问题 1.21.4.3 锁问题 2.11.4.4 锁问题 3.11.4.5 锁问题 4.11.4.6 锁问题 4.21.4.7 锁的问题 5.11.4.8 锁的问题 5.22 集合类不安全2.1 List 不安全2.2 Set 不安全2.3 Map 不安全3 Callable1 生产者消费者问题1.1 Synchronize原创 2022-03-18 16:28:08 · 6338 阅读 · 0 评论 -
java多线程同步以及线程间通信
1. 线程同步问题的产生什么是线程同步问题,我们先来看一段卖票系统的代码,然后再分析这个问题:package com.test;/** * @decrition 模拟卖票线程 */public class Ticket implements Runnable{ //当前拥有的票数 private int num = 100; public void run() { while(true) { if(num>0) { try{ Thread.原创 2021-04-29 10:56:18 · 1135 阅读 · 1 评论 -
java多线程基本概念
1.什么是线程以及多线程与进程的区别2.多线程的创建与启动3.中断线程和守护线程以及线程优先级4.线程的状态转化关系1.什么是线程以及多线程与进程的区别在现代操作在运行一个程序时,会为其创建一个进程。例如启动一个QQ程序,操作系统就会为其创建一个进程。而操作系统中调度的最小单位元是线程,也叫轻量级进程,在一个进程里可以创建多个线程,这些线程都拥有各自的计数器,堆栈和局部变量等属性,并且能够访问共享的内存变量。处理器在这些线程上高速切换,让使用者感觉到这些线程在同时执行。因此我们可以这样理解:.原创 2021-04-23 18:50:37 · 480 阅读 · 0 评论 -
Callable、Future、FutueTask的使用
我们知道创建线程的方式有两种,一种是实现Runnable接口,另一种是继承Thread,但是这两种方式都有个缺点,那就是在任务执行完成之后无法获取返回结果,那如果我们想要获取返回结果该如何实现呢?还记上一篇Executor框架结构中提到的Callable接口和Future接口吗?,是的,从JAVA SE5.0开始引入了Callable和Future,通过它们构建的线程,在任务执行完成后就可以获取执行结果,今天我们就来聊聊线程创建的第三种方式,那就是实现Callable接口。1.Callable接口.转载 2021-04-23 14:56:52 · 305 阅读 · 0 评论 -
java线程池
Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池,所以我们就要认识并弄懂线程池,以便于更好的为我们业务场景服务。一、线程池的好处降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗;提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行;提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控。但是,要做到合理利用线程池,必须对其实现原理了如指.原创 2021-04-21 17:22:38 · 192 阅读 · 0 评论 -
java捕获异常的方式
在Java中,线程中的异常是不能抛出到调用该线程的外部方法中捕获的。为什么不能抛出到外部线程捕获?因为线程是独立执行的代码片断,线程的问题应该由线程自己来解决,而不要委托到外部。基于这样的设计理念,在Java中,线程方法的异常都应该在线程代码边界之内(run方法内)进行try catch并处理掉。换句话说,我们不能捕获从线程中逃逸的异常。怎么进行的限制?通过java.lang.Runnable.run()方法声明(因为此方法声明上没有throw exception部分)进行了约束。如果在线程中.转载 2021-04-21 17:02:55 · 1369 阅读 · 0 评论