线程
文章平均质量分 64
浅羽技术
才疏学浅,习习而为,编程羽录,与你同行。
展开
-
多线程的作用
随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的,4核、8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%。从程序运行效率的角度来看,单核CPU不但不会发挥出多线程的优势,反而会因为在单核CPU上运行多线程导致线程上下文的切换,而降低程序整体的效率。多核CPU上的多线程才是真正的多线程,它能让你的多段逻辑同时工作,多线程,可以真正发挥出多核CPU的优势来,达到充分利用CPU的目的。这是另外一个没有这么明显的优点了。原创 2022-10-23 17:43:34 · 676 阅读 · 0 评论 -
【国庆活动】多线程常考察的方面
这个 java 面试问题可以变的非常棘手,如果他要求你写一个不可变对象,或者问你为什么 String 是不可变的。如果线程因为调用 wait()、sleep()、或者 join()方法而导致的阻塞,你可以中断线程,并且通过抛出 InterruptedException 来唤醒它。你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?这是一道出现在多线程面试的高级阶段的问题。当你调用 start()方法时你将创建新的线程,并且执行在 run()方法里的代码。原创 2022-10-03 00:57:44 · 220 阅读 · 2 评论 -
「创作之秋」关于线程池,你需要了解这些
2、 在线程池中,同一个线程可以从阻塞队列中不断获取新任务来执行,其核心原理在于线程池对Thread 进行了封装,并不是每次执行任务都会调用 Thread.start() 来创建新线程,而是让每个线程去执行一个“循环任务”,在这个“循环任务”中不停检查是否有任务需要被执行,如果有则直接执行,也就是调用任务中的 run 方法,将 run 方法当成一个普通的方法执行,通过这种方式只使用固定的线程就将所有任务的 run 方法串联起来。任务来了,直接有线程可用可执行,而不是先创建线程,再执行。1、 降低资源消耗;原创 2022-09-18 00:19:39 · 286 阅读 · 10 评论 -
【学习笔记】线程的生命周期和状态
运行的线程执行wait方法,该线程会释放占用的所有资源,JVM会把该线程放入“等待池”中。所有需要竞争同步锁的线程都会放在锁池当中,比如当前对象的锁已经被其中一个线程得到,则其他线程需要在这个锁池进行等待,当前面的线程释放同步锁后锁池中的线程去竞争同步锁,当某个线程得到后会进入就绪队列进行等待cpu资源分配。join()执行后线程进入阻塞状态,例如在线程B中调用线程A的join(),那线程B会进入到阻塞队列,直到线程A结束或中断线程。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。原创 2022-09-17 02:32:30 · 360 阅读 · 4 评论 -
线程池有哪几种运行状态?
线程池有哪几种运行状态原创 2022-05-05 11:14:52 · 279 阅读 · 0 评论