![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 71
起床xuexi
披星戴月的日子里有点点星光照亮着我们
展开
-
线程通讯的三种方法(线程的等待和唤醒功能)
1.wait()/wait(long timeout):线程进入休眠2.notify:随机唤醒进入休眠状态的线程3.notifyAll:唤醒所有处于休眠状态的线程注意事项:以上三种方法都必须配合synchronized一起使用,否则会报错。原创 2023-01-15 10:25:40 · 835 阅读 · 0 评论 -
关于死锁(死锁的演示、产生原因以及如何解决死锁等)
两个线程在拥有锁的情况下,在尝试获取对方的锁,从而导致程序进入阻塞状态。原创 2023-01-14 22:52:06 · 345 阅读 · 0 评论 -
线程安全问题中手动锁(LOCK)
Lock实现步骤:Lock基础用法: 接下来我们使用Lock来解决当时出现的问题执行结果: 总结:注意事项: 接下来我们使用Lock来解决当时出现的问题执行结果: 接下来我们花点时间来看看为什么需要放在try前面?代码:执行结果如下:改正之后执行代码如下: 结果如下:原创 2022-11-19 21:59:23 · 381 阅读 · 0 评论 -
【面试必问】Synchronized底层实现原理和运行流程
在Java中,Synchronized是非公平锁,也是可重入锁我们先来介绍一下公平锁:一定要执行的步骤:1.上一个线程释放锁之后执行唤醒2.最前面的线程从阻塞状态又切换到运行状态那么我们在简要的概述一下非公平锁,我们的非公平锁并不需要在执行的时候进行排队等待,只要该线程再来的时候占用锁资源的线程刚好释放锁,那么该线程就可以立刻执行,而不需要等待排序。synchronized 同步锁是通过 JVM 内置的 Monitor 监视器实现的,⽽监视器⼜是依赖操作系统的互斥锁Mutex 实现的。原创 2022-11-19 10:58:12 · 341 阅读 · 0 评论 -
Java进程和线程!!!(超级重要,用心整理)
1.1OS操作系统:操作系统是一组做计算机资源管理的软件的统称,目前常用的操作系统有:Windows系列,Unix系列(付费),Linux系列等等;记账信息里面会记录分配cpu的次数和执行间隔,作为cpu是否执行他的依据,而是否执行他是进程调度器决定的,记账信息只是提供给调度器参考信息。答:不是,如果创建的线程过多,就会造成狼多肉少的情况,就会造成恶意争抢和线程过度调度的问题的。(1)从属关系不同:进程是可执行的文件的实例,进程中包含了线程,,线程中不可以包含进程。每次打开新的进程都不一样。原创 2022-10-29 00:02:23 · 383 阅读 · 0 评论 -
什么是线程安全问题?以及线程安全性问题是如何产生的
线程不安全是指程序在多线程的执行环境下,程雪的执行结果不符合预期。原创 2022-11-13 16:15:40 · 246 阅读 · 0 评论 -
Java程序员线程部分之线程的常用属性(状态、优先级用户线程守护线程等等都有~看完这篇可以豁然开朗)
首先我们在创建线程之后优先级就已经是存在的了,当线程执行结束的时候,优先级也是存在的,优先级是int类型的值,默认的优先级是5。通过查看源码可以知道,我们的5是处于中间位置的优先级,1是最小的优先级,10是最大的优先级。原创 2022-11-07 21:01:29 · 870 阅读 · 0 评论 -
Java程序员之创建多线程的几种方式(三种方式、七种方法)
1.如果你是jdk1.8和之后的版本,不需要返回值的话可以考虑用lambda表达式来创建新线程2.如果需要返回值可以考虑用最后一种方法匿名callable接口。原创 2022-11-01 21:47:49 · 1509 阅读 · 0 评论 -
浅谈一下多线程都有哪些休眠方法,以及如何休眠当前的线程
关于线程的休眠方法这件事,我们最最熟悉的肯定是之前就一直在用的sleep方法,那么我今天想告诉大家的是其实sleep方法不一定就会执行相应的休眠时间,关于sleep以及interrupt方法的溯源,我们用一段代码来看。原创 2022-11-12 10:15:51 · 609 阅读 · 0 评论 -
Java多线程经典面试题:编写代码,实现多线程大数组求和的问题(简单实现)
如果不是全局的变量,那么在lambda表达式中修改的时候会报错,lambda表达式中不允许修改变量。1.给定一个很长的数组(长度1000w),通过随机数的方式生成1-100之间的整数。3.其中线程1汇总计算偶数下表元素的和,线程2计算汇总奇数下标元素的和。2.实现代码,能够创建两个线程,对这个数组的所有元素求和。方法2:创建两个带有返回值的线程,将这两个返回值累计即可。方法1:我们使用两个不带有返回值的线程,这样我们就需要。4.最终在汇总两个和,进行相加。5.记录程序的执行时间。原创 2022-11-11 20:16:19 · 603 阅读 · 0 评论 -
多线程部分深入理解之线程的常用构造方法
通过jconsole工具也能观察到我创建的线程:如果找到jconsole工具可以观察我之前的博客;原创 2022-11-02 20:22:33 · 158 阅读 · 0 评论 -
【面试题】关于线程的几种状态以及线程状态的转变
今天到现在这是第二篇文章了,总是会在怀疑自己,总觉得是不是写的不够清楚给读者看的话,每天都会在意很多事情,其实我想说,自己蛮不错的,今天还改了CSDN的昵称,是开心的,希望我写的文章可以帮助到很多初学者!今天也听到一个很有感触的话,道阻且长,行且将至,只要能开始,我想说任何时候都为时未晚!加油!!原创 2022-11-12 20:37:09 · 257 阅读 · 1 评论 -
Java程序员多线程部分之了解我们的多线程(初学者适用)
使用了多线程之后,整个程序的效率被大大提高。原创 2022-11-01 10:36:14 · 79 阅读 · 0 评论 -
Java程序员多线程的常用方法(很重要,稍微难理解,我用最清楚的大白话说)
1.相比于我们之前用的isActive()方法判断此时这个线程是否活跃,join()写法比较优雅。2.join()底层的实现是靠wait阻塞线程的执行,wait消耗CPU的资源较少。join():等待某个线程执行结束以后在执行后续的代码。原创 2022-11-10 17:01:05 · 810 阅读 · 0 评论 -
[Java程序员面试必问]如何解决线程安全问题之多线程锁
使用锁是Java中解决线程安全问题最主要的手段。原创 2022-11-18 20:17:01 · 670 阅读 · 0 评论 -
关于多线程中线程不安全问题中内存可见性问题以及指令重排序问题如何解决多线程中的这两个问题(volatile)
我先在类中定义了全局变量,之后我在主方法中定义两个线程,第一个线程让她去重复执行,while空循环,我们在第二个线程里尝试着去修改全局变量,让他能够导致第一个线程的停止执行,并最终输出一句话,我们可以看出来,线程1一直在执行,她并没有感知到我们的一个全局变量flag的一个修改,但我们从截图上可以看出来,并没有做到这一点,程序也一直不会退出执行,这就是。其他地方完全不变,接下来大家仔细看,结果就会不一样!我们只需要在我们的全局变量上修改,只需要将全局变量用。volatile修饰。原创 2022-11-17 21:51:33 · 156 阅读 · 0 评论