JUC
文章平均质量分 71
JUC
lgcgkCQ
Java小菜鸟
展开
-
java多线程(线程池)
java多线程、线程池原创 2022-09-01 21:49:15 · 134 阅读 · 0 评论 -
java多线程(线程)
1.Java中所有线程都是同时启动的,哪个线程占有cpu等运行资源,那个线程就可以运行2.Java每次运行都需要启动两个线程,main线程和垃圾回收线程3.Java线程运行过程中,其他线程并不会随着主线程的结束而结束。原创 2022-08-26 15:13:21 · 908 阅读 · 0 评论 -
JUC之锁
但是当自旋超过一定的次数,或者一个线程在持有锁,一个线程在自旋,又有第三个线程来访时,轻量级锁升级为重量级锁;轻量级锁:当锁是偏向锁的时候,被另一个线程所访问,偏向锁就会升级为轻量级锁,其他线程会通过自旋的形式尝试获取锁,不会阻塞,提高性能;偏向锁:是指一段同步代码一直被一个线程所访问,那么该线程会自动获取锁,降低获取锁的代价;乐观锁与悲观锁不是指具体的什么类型的锁,而是处理并发同步的策略。自旋锁是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁。公平锁指的是多线程按照申请锁的顺序来获取锁;原创 2023-05-15 11:36:52 · 284 阅读 · 0 评论 -
JUC之volatile
作用:volatile是Java提供的一种轻量级的同步机制保证内存可见性不保证原子性防止指令重排序正常情况下应该是线程A一直无限循环,直到主线程执行完num=1后,线程A终止。实际主线程已经执行完num=1了,但是线程A并没有终止循环。原创 2023-05-15 10:46:13 · 271 阅读 · 0 评论 -
JUC之线程池
获取核心数:Runtime.getRuntime().availableProcessors()IO密集型:判断程序中十分消耗IO的线程数,最大线程数一般设置为线程数的2倍CPU密集型:判断电脑的核数,最大线程数设置为核数,可以保持cpu的效率最高。原创 2023-05-14 15:53:46 · 367 阅读 · 0 评论 -
JUC之队列
阻塞队列:在多线程领域:在某些情况下会挂起线程(即阻塞),一旦条件满足,被挂起的线程又会自动被唤起;真正意义上来说并不能算是一个队列,而将其理解为一个用于线程之间通信的组件更为恰当。没有容量 进去一个 元素,必须等待取出来之后 才能继续添加元素。先进先出(FIFO):先插入的队列的元素也最先出队列,类似于排队的功能。后进先出(LIFO):后插入队列的元素最先出队列,这种队列优先处理最近发生的事件(栈)不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程;3. 堵塞 一直等待。原创 2023-05-14 11:42:19 · 94 阅读 · 0 评论 -
JUC之常见辅助类
同步工具类,它通过一个计数器来实现的,初始值为线程的数量。每当一个线程完成了自己的任务,计数器的值就相应得减1。当计数器到达0时,表示所有的线程都已执行完毕,然后在等待的线程就可以恢复执行任务。countDown():每调用一次计数器值-1,直到count被减为0。await(): 等待计数器变为0,即等待所有异步线程执行完毕。1. 某个线程需要在其他n个线程执行完毕后再向下执行。getCount():获取当前计数器的值。acquire() 线程占用一个许可.使用场景是限制一定数量的线程能够去执行。原创 2023-05-13 22:17:20 · 486 阅读 · 0 评论 -
JUC之生产者与消费者问题
JUC之生产者与消费者问题原创 2023-05-12 19:18:21 · 534 阅读 · 0 评论 -
JUC之Synchronized与Lock
JUC之Synchronized与Luck原创 2023-05-12 17:37:17 · 898 阅读 · 0 评论