随笔分类 - Java-多线程
摘要:一、线程池 背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以避免频繁创建销毁、实现重复利用。 好处: 提高响应速度(减少了创建新线程的时间) 降低资源消耗(重复利用线程池中线程,不需要每次都
阅读全文
摘要:一、线程协作 1.1、生产者消费者模式 线程通信 应用场景:生产者和消费者问题 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费。 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止。 如果仓库中放有产品,则消费者可
阅读全文
摘要:一、线程同步 由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中被访问时的正确性,在访问时加入 锁机制 synchronized,当一个线程获得对象的排它锁,独占资源,其他线程必须等待,使用后释放锁即可。 加锁之后存在以下问题: 一个线程持有锁会导
阅读全文
摘要:一、守护线程 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 如,后台记录操作日志,监控内存,垃圾回收等待... package com.kuang.state; // 测试守护线程 // 上帝守护你 public class TsetDaemon { p
阅读全文
摘要:一、线程的优先级 Java 提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行, 线程的优先级用数字表示,范围从 1~10 Thread.MIN_PRIORITY = 1; Thread.MAX_PRIORITY = 10; Thread.NO
阅读全文
摘要:一、线程状态 1.1、线程的五大状态 1.2、线程方法 方法 说明 setPriority(int newPriority) 更改线程的优先级 static void sleep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠 void join() 等待该线程终止 static
阅读全文
摘要:一、Lambda 表达式 避免匿名内部类定义过多 其实质属于函数式编程的概念 理解 Functional Interface(函数式接口)是学习 Java8 Lambda 表达式的关键所在。 函数式接口的定义: 任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。 public inte
阅读全文
摘要:一、静态代理 静态代理模式总结: 真实对象和代理对象都要实现同一个接口 代理对象要代理真实角色 好处: 代理对象可以做很多真实对象做不了的事情 真实对象专注做自己的事情 public class StacticProxy { public static void main(String[] args
阅读全文
摘要:一、线程创建 1.1、三种创建方式 继承 Thread 类(重点) 实现 Runnable 接口(重点) 实现 Callable 接口(了解) 1.2、Thread 类 自定义线程类继承 Thread 类 重写 run() 方法,编写线程执行体 创建线程对象,调用 start() 方法启动线程 代码
阅读全文
摘要:一、线程简介 1.1、多任务 现实中同一时间做多件事情,其本质上我们的大脑在同一时间依旧只做了一件事情。 1.2、普通方法与多线程 普通方法: 多线程: 1.3、Process与Thread 进程是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位。 通常在一个进程中可以包含若干个线程
阅读全文

浙公网安备 33010602011771号