![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 54
小花皮猪
知道的越多,不知道的越多
展开
-
Java多线程-简单使用Lock(锁)
lock是JUC(并发)下的一个接口,一般用它的实现类ReentrantLock(可重入锁)比较多。加锁:lock(),解锁:unLock(),一般放在try catch finally中使用。Lock锁>同步代码块(已经进入了方法体,分配了相应资源)>同步方法(在方法体外)原创 2022-09-07 23:35:58 · 3701 阅读 · 5 评论 -
Java多线程-死锁简述
多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情景,某一个代码块同时拥有两个或者两个以上的锁时,就会发生死锁的问题简单来说: 死锁就是多个线程互相持有对方所需要的资源,形成僵持,谁也拿不到。原创 2022-09-07 23:33:02 · 228 阅读 · 0 评论 -
Java多线程-synchronized同步方法及同步块简述
synchronized是隐示锁,出了作用域自动释放(同步方法或者同步代码块),Lock是手显示锁(手动加锁和释放锁,lock和unLock,别忘记关闭锁,不然可能造成死锁)队列+锁 synchronized 两种用法synchronized方法和synchronized块。原创 2022-09-07 23:28:50 · 1417 阅读 · 0 评论 -
Java多线程-线程3大不安全案例
简单来说:多个线程操作同一个位置,把两个数组添加到同一位置,就会把元素进行覆盖,进行数据丢失。多个人同时抢到相同的票,甚至还有-1这种情况,因为我们没让线程排队。执行发现结果并不是10000,而是丢失一些。arrayList就不安全。原创 2022-09-07 23:25:13 · 409 阅读 · 0 评论 -
Java多线程-线程同步简述
同步就是在不出问题的前提下一个一个来一般发生在多个线程操作同一个资源,它有一个专业的词汇叫:并发并发:同一个对象被多个线程同时操作处理多线程问题时,多个线程访问同一个对象,并且某个线程还想修改这个对象,这时候我们就需要用到线程同步,线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程才能再使用并发这种机制可以保证我们的数据安全并且大幅度提高效率。原创 2022-09-07 23:22:18 · 296 阅读 · 0 评论 -
Java多线程-线程的优先级(priority)以及守护线程(daemon)
线程的优先级(priority) :是一个常量Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定按照优先级决定应该调度哪个线程来执行线程的优先级用数字表示,范围从1-10,线程优先级高给的资源会多一些, 线程优先级高并不一定先执行,但是权重就大了,比如1张彩票和10张彩票,中奖率就会提高。原创 2022-09-07 23:19:33 · 1003 阅读 · 0 评论 -
Java多线程-线程的状态和线程常用方法
调用sleep,wait等方法时,线程进入阻塞状态,线程不再继续往下执行,阻塞事件解除后,重新进入就绪状态,等待cpu调度执行。3 建议使用一个标志位进行终止变量,当flag=false时,则终止线程运行。1 不推荐使用jdk提供的stop(),destroy()方法(已废弃)线程中断或者结束,一旦进入死亡状态,就不能再次启动线程。线程休眠的作用(模拟网络延时): 放大问题的发生性。调用线程的start()方法,线程进入就绪状态。线程进入运行状态,开始执行线程体代码。每1s获取当前系统时间。原创 2022-09-05 23:05:29 · 488 阅读 · 1 评论 -
Java多线程-lambda表达式
它是Java8函数式接口(function interface),Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)1 任何接口,如果只包含唯一一个抽象方法,那么它就是函数式接口runnable接口就是一个lambda表达式。原创 2022-09-05 22:59:29 · 1020 阅读 · 0 评论 -
Java多线程-静态代理
Java多线程-静态代理原创 2022-09-05 22:55:07 · 156 阅读 · 0 评论 -
Java多线程-初识并发问题
Java多线程-初识并发问题原创 2022-09-05 22:52:44 · 187 阅读 · 0 评论 -
Java多线程-线程创建的3种方式
Java多线程-线程创建的3种方式原创 2022-09-05 22:48:59 · 175 阅读 · 0 评论 -
Java多线程-进程和线程概念
线程是一条执行路径,是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。很多多线程是模拟出来的,真正的多线程指的是有多个CPU,即多核,如服务器,如果是模拟出来的多线程,即在一个CPU的情况下,在同一个时间点,cpu只能执行一个代码,因为切换的速度很快,所以就有同时执行的错局。通常在一个进程中包含若干个线程,当然一个进程中至少包含一个线程,不然没有存在的意义,线程是CPU调度和执行的单位。原创 2022-09-05 22:41:17 · 247 阅读 · 0 评论