多线程
文章平均质量分 94
月屯
学会做夜空中那颗最亮的星
展开
-
JUC、HashMap 非安全容器bing
上一篇文章目录JUC(Java并发包)1.ReentrantLock(可重入锁)2.Semaphore(信号量)3. CountDownLatch(计数器)4. CyclicBarrier(循环屏障)HashMap 非安全容器JDK 1.7 头插法->死循环HashMap的安全版本:ConcurrentHashMapJUC(Java并发包)java.util.concurrent包下的类JUC包下的所有类都是线程安全的,JUC下有:1.ReentrantLock(可重入锁)2.Semaph原创 2021-06-27 21:26:28 · 205 阅读 · 1 评论 -
常见锁bing
目录标题锁策略乐观锁CAS原理CAS在 Java中的应用: AtomicInteger/Atomic*乐观锁(CSA)问题解决及方案问题解决方案锁策略乐观锁它认为一般情况下不会出现问题,所以他在使用的时候不会加锁,只有在数据修改的时候,才会判断有没有锁竞争,如果没有就会直接修改数据,如果有则会返回失败信息给用户自行处理。乐观锁的经典事项:CAS (Compare And Swap)对比并且替换。CAS 实现:(v【内存中值】,A【预期的旧值】,B_(新值))V==A 对比? true ->原创 2021-06-27 11:58:16 · 235 阅读 · 1 评论 -
ThreadLocal、单例模式、线程通讯bing
线程安全问题场景:实现1000任务的时间格式化 private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("mm:ss"); public static void main(String[] args) { // 定义线程池 ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecu原创 2021-06-26 14:44:12 · 179 阅读 · 0 评论 -
线程池bing
前言线程缺点:1.线程的创建它会开辟本地方法栈、虚拟机栈、程序计数器成线程私有的内存,同时消耗的时候需要销毁以上3个区域,因此频繁的创建和消耗比较消耗系统资源;2.在任务量远远大于线程可以处理的任务量的时候,并不能友好拒绝任务。线程池定义:使用池化技术来管理线程和使用线程的方式。线程池的优点1.可以避免频繁的创建和消耗线程。2.可以更好的管理线程的个数和资源的个数。3.拥有更多的功能,比如线程池可以进行定时任务的执行。4.线程池可以更优化的拒绝不能处理的任务。线程池的创建线程池的创建总原创 2021-06-23 14:24:03 · 202 阅读 · 0 评论 -
死锁、线程bing
前言定义:在两个或者两个以上的线程运行中,因为资源抢占而造成线程一直等待的问题。检测工具:jconsole、jmc、jvisualvm位置:JDK8\bin造成死锁的4个条件:死锁代码:1.互斥条件:当资源被一个线程拥有之后,就不能被其它的线程拥有了。(不可更改)⒉.请求拥有条件:当一个线程拥有了一个资源之后又试图请求另一个资源。(可以解决)3.不可剥夺条件:当一个资源被一个线程拥有之后,如果不是这个线程主动释放此资源的情况下,其他线程不能拥有此资源。(不可更改)4.环路等待条件:两个原创 2021-06-21 08:42:52 · 202 阅读 · 1 评论 -
多线程(上篇)bing
概念任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:内核(进程管理,内存管理,文件管理,驱动管理)其他程序(例如函数库,shell程序等等)...原创 2021-06-20 15:44:34 · 190 阅读 · 0 评论 -
一共有3个线程,两个子线程先后循环2次,接着主线程循环3次,接着又回到两 个子线程先后循环2次,再回到主线程又循环3次,如此循环5次。
转载转载 2020-09-13 09:50:22 · 227 阅读 · 0 评论 -
守护线程和用户线程二者区别
◆线程分为用户线程和守护线程◆虚拟机必须确保用户线程执行完毕◆虚拟机不用等待守护线程执行完毕◆如,后台记录操作日志,监控内存,垃圾回收等待…一般情况下我们建立的线程是用户线程,如果先要穿件守护线程,只需在创建线程是将setDaemon(true)即可。public class Main { public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method原创 2020-05-10 09:51:18 · 493 阅读 · 0 评论 -
观测线程状态
其中◆Join合并线程,待此线程执行完成后,再执行其他线程,其他线程阻塞,可以想象成插队◆礼让线程,让当前正在执行的线程暂停,但不阻塞,线程丛运行转到就绪,让cpu重新调度,礼让不一定成功! 看CPU心情◆线程休眠:sleep (时间)指定当前线程阻塞的毫秒数;sleep存在异常InterruptedException;sleep时间达到后线程进入就绪状态; .sleep可以模拟网络延时,倒计时等。每一个对象都有一个锁,sleep不会释放锁;public class Main { public.原创 2020-05-10 08:58:13 · 230 阅读 · 0 评论 -
线程停止方法
请看这里原创 2020-05-09 21:43:48 · 139 阅读 · 0 评论 -
java lambda ->
介绍:Lambda表达式是Java SE 8中一个重要的新特性为什么用如何用例子// 1. 不需要参数,返回值为 5 () -> 5 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> 2 * x // 3. 接受2个参数(数字),并返回他们的差值 (x, y) -> x – y // 4. 接收2个int型整数,返回他们的和 (int x, int y) -> x + y // 5. 接受一个 st原创 2020-05-09 21:08:32 · 457 阅读 · 2 评论