
多线程
文章平均质量分 92
初心魏
最近太颓废了吧
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程异常的捕获
一、线程异常的捕获1.1 传统的方法try-catch-finally1.2 线程自身的方法UncaughtExceptionHandler,他能检测出某个线程由于未捕获线程而终结。二、捕获线程异常的具体方法2.1 普通方式创建线程时设置异常处理实现UncaughtExceptionhandler接口public class MyThreadExceptionHandler i...原创 2019-12-01 18:47:53 · 856 阅读 · 0 评论 -
Java中的锁
一、Lock与synchronized1.1 区别Lock是显示的获取锁,synchronized是隐式的获取锁Lock响应中断,获取锁的线程响应中断后会抛出中断异常,然后释放锁Lock可以超时的获取锁,它提供了一个方法,设置获取锁的截止时间,到了截止时间还没有获取锁,则返回。Lock需要我们手动的释放锁,而synchronized则是自动的释放锁。Lock可以非阻塞的获取锁,try...原创 2019-12-01 17:08:28 · 115 阅读 · 0 评论 -
java线程池
一、ThreadPoolExecutor1.1 常用参数corePoolSize:核心线程数maximumPoolSize:线程池最大允许线程数workQueue:任务队列threadFactory:线程创建工厂handler: 任务拒绝策keepAliveTime, unit:等待时长1.2 执行流程首先判断线程数是否大于corePoolSize否,threadFact...原创 2019-09-22 01:48:46 · 329 阅读 · 4 评论 -
Java 计算机网络 复习
一、Http,Https,tcp/ip,socket1.1 https定义https是在应用层和传输层之间建立了安全套接字层(ssl/tls)ssl 安全套接字层tls 传输层安全协议1.2 https作用内容加密 建立一个信息安全通道,来保证数据传输的安全身份认证 确定网站的真实性数据完整性 防止数据被第三方冒充或者篡改1.3 http超文本传输协议,是应用层协议,...原创 2019-09-17 20:41:44 · 654 阅读 · 0 评论 -
单例模式与多线程
一、单例模式1.1 立即加载/饿汉模式立即加载就是使用类的时候已经创建完毕立即加载:public class single { static User user = new User(); public static User getInstance(){ return user; }}测试: @Override public ...原创 2019-08-12 16:41:55 · 280 阅读 · 0 评论 -
多线程 补充
一、线程的状态1.1 Thread.State线程的状态在该枚举类中表示BLOCKED受阻塞并且正在等待监视器锁的某一线程的线程状态。NEW至今尚未启动的线程的状态。RUNNABLE可运行线程的线程状态。TERMINATED已终止线程的线程状态。TIMED_WAITING具有指定等待时间的某一等待线程的线程状态。WAITING某一等待线程的线程状态。二、线程各...原创 2019-08-15 17:21:59 · 263 阅读 · 0 评论 -
Lock的使用
文章目录一、Lock的使用1.1 ReentrantLock类1.2 使用ReentrantLock实现同步二、使用Condition实现等待/通知2.1 ReentrantLock和Condition2.2 Condition类2.3 ReentrantLock和Condition实现简单等待/通知2.3 多个Condition实现通知部分线程2.4 实现生产者一对一2.5 生产者/消费者:多对...原创 2019-08-10 17:09:39 · 3597 阅读 · 2 评论 -
线程间通信
一、等待,通知机制1.1 while()语句轮询机制用while语句轮询机制虽然可以实现线程间的通信,但是如果轮询等待时间间隔很小,更浪费CPU资源,如果轮询等待的时间间隔很大,有可能会取不到想要的数据。1.2 等待,通知机制wait()方法wait()方法使当前执行的代码的线程进行等待,该方法是Object类的方法,该方法用来将当前线程置入“预执行队列中”,并且在wait所在的...原创 2019-08-09 23:31:32 · 359 阅读 · 0 评论 -
对象及变量的并发访问
一、synchronized同步方法1.1 方法内的变量为线程安全方法内部的私有变量,不存在线程安全问题。以为是线程私有的,其他的线程对此不可见,所以,方法内部的私有变量始终是线程安全的。1.2 实例变量非线程安全比如两个线程访问同一个对象的方法:Stu类:public class Stu { String name; String password; publ...原创 2019-08-06 17:35:14 · 151 阅读 · 0 评论 -
线程基础知识
一、基本概念1.1 进程 进程是操作系统结构的基础,是一次程序的执行,是一个程序及其数据在处理机上顺序执行时所发生的活动,是程序在一个数据集合上运行的过程,他是系统进行资源分配和调度的单位。 操作系统中正在运行的exe就是一个进程。1.2 线程在进程中独立运行的子任务。1.3 单任务需要排队执行,也就是同步,所以cp...原创 2019-08-05 01:43:11 · 225 阅读 · 0 评论 -
管道流与等待/通知交叉备份
一、通过管道进行线程间通信1.1 管道流pipeStream一种特殊的流,用于在不同线程之间直接传送数据。一个线程发送数据到输出管道,另一个线程从输入管道中取数据。通过使用管道,实现不同线程之间的通信,而无需借助于类似临时文件的东西。1.2 jdk提供的用于线程通信的类PipedInputSream和PipedOutputStreamPipedReader和PipedWriter1...原创 2019-05-13 17:42:07 · 184 阅读 · 0 评论 -
单例模式与多线程
文章目录一、加载模式1.1立即加载/饿汉模式1.2 延迟加载/懒汉模式1.3 延迟加载的缺点1. 4 延迟加载的解决方案二、其他方法实现2.1 使用静态内之类实现单例模式2.2 序列化与反序列化的单例模式的实现2.3 使用static代码块实现单例模式2.4 使用枚举数据类型实现单例模式一、加载模式1.1立即加载/饿汉模式立即加载就是实用类的时候已经将对象创建完毕。常见的实现办法就是直接ne...原创 2019-05-21 21:11:36 · 142 阅读 · 0 评论 -
Timer类
一、Timer类1.1 概述Timer类的作用是设置计划任务,但是任务封装的类是TimerTask类。执行计划任务的代码要放入TimerTask的子类中,因此TimerTask是一个抽象类。1.2 schedule(TimerTask task, Date time)方法在指定的日期执行某一次任务mytask类:public class mytask extends TimerTask...原创 2019-05-20 21:45:24 · 2319 阅读 · 0 评论 -
ReentrantReadWriteLock类
一、概述1.1 由来ReentrantoLock类可以保证实例变量的线程安全性,但效率却是非常低下的,ReentrantReadWriteLock类可以加快运行效率,在某些不需要操作实例变量的方法中,可以完全使用读写锁来提升该方法的代码运行速度。1.2 读读共享public class lock { ReentrantReadWriteLock lock = new Reentra...原创 2019-05-20 17:41:50 · 148 阅读 · 0 评论 -
join方法的使用
一、join方法1.1 jon方法的作用使所属的线程对象x正常执行run()方法中的任务,而使当前线程y无限期的阻塞,直到x线程销毁后再继续执行线程y后面的代码。join方法具有使线程排队运行的作用,有些类似同步的运行的效果。1.2 join与synchronized的区别join在内部使用wait()方法进行等待,而synchronized关键字使用的是"对象监视器"原理作为同步。...原创 2019-05-14 19:56:54 · 5090 阅读 · 0 评论 -
等待/通知机制
一、等待/通知机制1.1 wait/notify机制的由来如果某一线程通过while轮询机制来检测某一条件,轮询时间间隔很小,会更浪费CPU资源;如果轮询时间间隔很大,可能会取不到想要的数据,所以就需要一种机制来减少CPU的资源浪费,而且还可以在实现多个线程之间的通信,这就是wait/notify机制的由来。1.2 什么是等待/通知机制比如生产者和消费者模型,消费者等待生产者生产资源,这是...原创 2019-05-06 17:45:59 · 1478 阅读 · 0 评论