随笔分类 -  JAVA多线程

摘要:线程协作 1.生产者消费者模式 应用场景 假设仓库中只能存放一件产品﹐生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费。 如果仓库中没有产品﹐则生产者将产品放入仓库﹐否则停止生产并等待,直到仓库中的产品被消费者取走为止。 如果仓库中放有产品﹐则消费者可以将产品取走消费﹐否则停止消费并等待, 阅读全文
posted @ 2023-08-25 17:52 Y~~~ 阅读(33) 评论(0) 推荐(0) 编辑
摘要:Lock(锁) 1. synchronized 与Lock的对比 Lock是显式锁(手动开启和关闭锁,别忘记关闭锁)synchronized是隐式锁,出了作用域自动释放。 Lock只有代码块锁,synchronized有代码块锁和方法锁 使用Lock锁,JVM将花费较少的时间来调度线程,性能更好。并 阅读全文
posted @ 2023-08-25 15:37 Y~~~ 阅读(70) 评论(0) 推荐(0) 编辑
摘要:死锁 1.死锁 多个线程各自占有一些共享资源﹐并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源﹐都停止执行的情形﹒某一个同步块同时拥有“两个以上对象的锁”时,就可能会发生“死锁”的问题。 // 死锁:多个线程互相抱着对方需要的资源,然后形成僵持。public cla 阅读全文
posted @ 2023-08-25 15:21 Y~~~ 阅读(55) 评论(0) 推荐(0) 编辑
摘要:线程同步 1.并发 并发∶同一个对象被多个线程同时操作 2.线程同步 处理多线程问题时,多个线程访问同一个对象﹐并且某些线程还想修改这个对象.这时候我们就需要线程同步﹒线程同步其实就是一种等待机制﹐多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用。 3 阅读全文
posted @ 2023-08-25 14:53 Y~~~ 阅读(61) 评论(0) 推荐(0) 编辑
摘要:守护(daemon)线程 // 测试守护线程// 上帝守护你​public class TestDaemon {​ public static void main(String[] args) { God god = new God(); You you = new You();​ Thread t 阅读全文
posted @ 2023-08-25 10:07 Y~~~ 阅读(53) 评论(0) 推荐(0) 编辑
摘要:线程优先级 Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。 线程的优先级用数字表示,范围从1~10. Thread.MIN_PRIORITY = 1;Thread.MAX_PRIORITY = 10;Thread.NORM_PRI 阅读全文
posted @ 2023-08-25 09:55 Y~~~ 阅读(64) 评论(0) 推荐(0) 编辑
摘要:线程状态观测 1.五种线程状态 new 尚未启动的线程处于此状态。 Runnable 在Java虚拟机种执行的线程处于此状态。 BLocked 正在等待另一个线程执行特定动作的线程处于此状态。 Time_waiting 正在等待另一个线程动作打到指定等待时间的线程所处的状态 Terminated 已 阅读全文
posted @ 2023-08-25 09:42 Y~~~ 阅读(35) 评论(0) 推荐(0) 编辑
摘要:线程状态 1.总状态 2.线程方法: setPriority(int newPriority) :更改线程优先级 static void sleep(long millis):在指定的毫秒数内让当前正在执行的线程休眠 void join():等待该线程终止 static void yield():暂 阅读全文
posted @ 2023-08-24 18:03 Y~~~ 阅读(61) 评论(0) 推荐(0) 编辑
摘要:Lamda表达式 1.为什么要用lamda表达式(函数式编程) 避免匿名内部类定义过多。 代码简洁。 去掉没有意义代码,只留下核心逻辑。 new Thread (()->System.out.println("多线程学习")).start() 2.函数式接口定义: 任何接口,如果只包含唯一一个抽象方 阅读全文
posted @ 2023-08-24 17:00 Y~~~ 阅读(67) 评论(0) 推荐(0) 编辑
摘要:静态代理 1.静态代理模式总结 // 静态代理模式总结// 真实对象和代理对象都要实现同一个接口// 代理对象要代理真实角色​// 好处// 1.代理对象可以做很多真实对象做不了的事情// 真实对象专注自己的事情public class StaticProxy { public static voi 阅读全文
posted @ 2023-08-24 15:52 Y~~~ 阅读(55) 评论(0) 推荐(0) 编辑
摘要:并发 1.初识并发问题 // 多个线程同时操作一个对象// 买火车票// 发现问题:多个线程操作同一个资源的情况下,线程不安全public class TestThread4 implements Runnable{ // 票数 private int ticketNums = 10;​ publi 阅读全文
posted @ 2023-08-24 15:20 Y~~~ 阅读(36) 评论(0) 推荐(0) 编辑
摘要:实现Runnable接口 // 创建线程方式2:实现runnable接口,重写run方法,执行线程需要丢入runnable接口实现类,调用start方法public class TestThread3 implements Runnable{ public void run(){ // run方法程 阅读全文
posted @ 2023-08-24 11:22 Y~~~ 阅读(24) 评论(0) 推荐(0) 编辑
摘要:网图下载 import org.apache.commons.io.FileUtils;​import java.io.File;import java.io.IOException;import java.net.URL;​// 联系Thread,实现多线程同步下载图片public class T 阅读全文
posted @ 2023-08-24 10:59 Y~~~ 阅读(30) 评论(0) 推荐(0) 编辑
摘要:线程 1.多任务 2.多线程 线程就是独立的执行路径;main()称之为主线程,为系统的入口,用于执行整个程序; 3.程序,进程,线程 在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程; 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相 阅读全文
posted @ 2023-08-24 10:04 Y~~~ 阅读(5) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示