随笔分类 -  多线程

摘要:package com.hua.demo3; import java.util.concurrent.*; public class ThreadNew { public static void main(String[] args) { new MyThread1().start(); new T 阅读全文
posted @ 2022-02-21 00:39 少时凌云志 阅读(8) 评论(0) 推荐(0) 编辑
摘要:线程池 背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以 避免频繁创建销毁、实现重复利用。类似生活中的公共交通工具 好处: 提高响应速度(减少了创建新线程的时间) 降低资源消耗(重复利用线程池 阅读全文
posted @ 2022-02-21 00:38 少时凌云志 阅读(12) 评论(0) 推荐(0) 编辑
摘要:线程协作 线程通信 应用场景:生产者和消费者问题 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止 如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等 阅读全文
posted @ 2022-02-21 00:37 少时凌云志 阅读(28) 评论(0) 推荐(0) 编辑
摘要:Lock(锁) 从JDK5.0开始,java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步,同步锁使用Lock对象充当 java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock 阅读全文
posted @ 2022-02-18 23:33 少时凌云志 阅读(407) 评论(0) 推荐(0) 编辑
摘要:死锁 多个线程各自占用一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形。某一个同步块同时拥有"两个以上对象的锁"时,就可能会发生"死锁"的问题 package com.hua.lock; //死锁:多个线程互相抱着对方需要的资源,然后 阅读全文
posted @ 2022-02-18 23:30 少时凌云志 阅读(34) 评论(0) 推荐(0) 编辑
摘要:CopyOnWriteArrayList package com.hua.syn; import java.util.concurrent.CopyOnWriteArrayList; //测试JUC安全类型的集合 public class TestJUC { public static void m 阅读全文
posted @ 2022-02-18 23:28 少时凌云志 阅读(16) 评论(0) 推荐(0) 编辑
摘要:同步方法 由于我们可以通过private关键字来保证数据对象只能被方法访问,所以我们只需要针对方法提出一套机制,这套机制就是synchronized关键字,它包括两种用法: synchronized方法和synchronized块 synchronized方法控制对"对象"的访问,每个对象对应一把锁 阅读全文
posted @ 2022-02-18 23:22 少时凌云志 阅读(187) 评论(0) 推荐(0) 编辑
摘要:线程同步 并发:同一个对象被多个线程同时操作 现实生活中,我们会遇到"同一个资源,多个人都想使用"的问题,比如食堂排队打饭,每个人都想吃饭,最天然的解决办法就是,排队,一个一个来 处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这时候我们就需要线程同步, 线程同步其实就是一种 阅读全文
posted @ 2022-02-17 23:40 少时凌云志 阅读(29) 评论(0) 推荐(0) 编辑
摘要:守护(daemon)线程 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 如,后台记录操作日志,监控内存,垃圾回收等待 package com.hua.state; //测试守护线程 //上帝守护你 public class TestDaemon { pu 阅读全文
posted @ 2022-02-17 23:38 少时凌云志 阅读(49) 评论(0) 推荐(0) 编辑
摘要:线程优先级 Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行 线程的优先级用数字表示,范围从1~10 Thread.MIN_PRIORITY = 1; Thread.MAX_PRIORITY = 10; Thread.NORM_PRI 阅读全文
posted @ 2022-02-17 23:35 少时凌云志 阅读(15) 评论(0) 推荐(0) 编辑
摘要:线程状态观测 Thread.State 一个线程可以在给定时间点处于一个状态。这些状态是不反映任何操作系统线程状态的虚拟状态 package com.hua.demo; //观察测试线程的状态 public class TestState { public static void main(Stri 阅读全文
posted @ 2022-02-16 23:20 少时凌云志 阅读(37) 评论(0) 推荐(0) 编辑
摘要:线程礼让 礼让线程,让当前正在执行的线程暂停,但不阻塞 将线程从运行状态转为就绪状态 让cpu重新调度,礼让不一定成功!看cpu心情! package com.hua.demo; //测试礼让 //礼让不一定成功,看cpu心情 public class TestYield { public stat 阅读全文
posted @ 2022-02-16 22:26 少时凌云志 阅读(39) 评论(0) 推荐(0) 编辑
摘要:线程休眠 sleep(时间)指定当前线程阻塞的毫秒数 sleep存在异常InteruptedException sleep时间达到后线程进入就绪状态 sleep可以模拟网络延时,倒计时等 每一个对象都有一个锁,sleep不会释放锁! package com.hua.demo; //模拟网络延时:放大 阅读全文
posted @ 2022-02-16 22:25 少时凌云志 阅读(45) 评论(0) 推荐(0) 编辑
摘要:线程状态 线程方法 停止线程 package com.hua.demo; //线程状态 //测试stop //1、建议线程正常停止 > 利用次数,不建议死循环 //2、建议使用标志位 > 设置一个标志位 //3、不要使用stop或者destroy等过时或者JDK不建议使用的方法 public cla 阅读全文
posted @ 2022-02-16 22:24 少时凌云志 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Lamda表达式 希腊字母表中排序第十一位的字母,英语名称为Lambda 避免匿名内部类定义过多 其实质属于函数式编程的概念 为什么要使用lambda表达式 避免匿名内部类定义过多 可以让你的代码看起来很简洁 去掉了一堆没有意义的代码,只留下核心的逻辑 也许你会说,我看了Lambda表达式,不但不觉 阅读全文
posted @ 2022-02-16 22:21 少时凌云志 阅读(83) 评论(0) 推荐(0) 编辑
摘要:线程创建 三种创建方式 Thread //创建线程方式一:继承Thread类,重写run()方法,调用start开启线程 //总结:注意,线程开启不一定立即执行,由CPU调度执行 public class TestThread1 extends Thread{ @Override public vo 阅读全文
posted @ 2022-02-16 00:09 少时凌云志 阅读(46) 评论(0) 推荐(0) 编辑
摘要:线程简介 多任务 现实中太多这样同时做多件事情的例子了,看起来是多个任务都在做,其实本质上我们的大脑在同一时间依旧只做了一件事情 多线程 原来是一条路,慢慢因为车太多了,道路堵塞,效率极低。为了提高使用的效率,能够充分利用道路,于是加了多个车道。从此,再也不用担心道路堵塞了 普通方法调用和多线程 程 阅读全文
posted @ 2022-02-16 00:00 少时凌云志 阅读(64) 评论(0) 推荐(0) 编辑

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