
多线程
lDevinl
这个作者很懒,什么都没留下…
展开
-
线程锁-----死锁
死锁:我自己的理解就是,A和B两个方法都想要对象的东西,而都不想松手,从而造成了死锁,例如:A(小孩)和B(小孩),A手里有一个玩具手枪,B手机有一个玩具汽车,A想玩B的,B也想玩A的,但是,两个人都不愿意给对方自己手里的玩具,从而造成了打架具体代码如下:自己的女朋友和妹妹每天都要化妆,一个是口红,一个是镜子,(假设都只有一个),就会出现这种情况public class DeadLock...原创 2020-04-26 16:45:10 · 148 阅读 · 0 评论 -
线程锁-----lock锁
锁有两种方式:1.synchronized锁2.lock 锁锁,顾名思义,就是把一个容易出问题的东西,锁起来,让他变得安全举例子说明吧,举例子更形象,特更好理解现在上卫生间都知道锁门,如果只有一个卫生间并且没有锁,A在卫生间,外面有那么一群人都想去,那么厕所肯定会被挤爆,现在添加 了一个锁,那就只能等A结束了,其他人才能进去,只能一个一个进,这样,线程就会安全了许多,但是,也会带来了效率...原创 2020-04-26 16:44:50 · 460 阅读 · 0 评论 -
线程之-----锁(synchronized锁)
多线程中有写程序是由一写BUG的,学习线程锁,很经典的例子,买票案例有A,B,C三个窗口,同时售卖100张票,最后可能会出现卖了重复的票,或者多卖了,卖超了等线程不安全问题看一个线程不安全的卖票代码:小明,小张,小王同时去买票,就会出现上面的线程不安全问题,因为,窗口1卖了1张票,而另外两个窗口不知道,又把第一张票卖了出去,所有会出现卖超,重复卖等不安全问题public class Te...原创 2020-04-26 16:44:30 · 166 阅读 · 0 评论 -
线程之插队(join方法)
在现实生活中,有很多人,存在很多人插队,例如:下课去食堂吃饭,别人都在排队,打饭的阿姨你是家亲戚,你到窗口,阿姨就给你打了慢慢的饭菜,让别人羡慕,在程序中也有这种情况出现,A正在执行,B要插队,A就得停下来,等B执行结束在去执行A具体看如下代码:public class TestJoin implements Runnable{ @Override public void ...原创 2020-04-23 21:48:50 · 685 阅读 · 0 评论 -
线程之礼让线程(yield)
`礼让线程`,顾名思义就是我让让你,在程序中,正在执行的线程,可以礼让其他线程,例:A线程正在执行,B线程说我要执行,可以运行`Thread.yield();`礼让线程,但是B不一定,一定执行,分开读,执行过礼让线程之后,只是A线程退出执行程序,A,B线程全部等待CPU来调度执行,这时候还是看cpu,如果cpu调度了B,说明成功,如果cpu调度了A,那么,不好意,B还得等A 执行结束以后再去执...原创 2020-04-23 21:48:13 · 191 阅读 · 0 评论 -
线程之停止线程
停止线程有三种方法:1.建议正常停止-->利用次数,不建议死循环2.建议使用标志位-->设置一个标志位3.不要使用stop或者destoy等过时或者JDK不建议使用的方法举例说明:想让一个正在运行的程序停下来,运行其他程序,运行完以后再进行自己的程序怎么来解决呢?可以自己设置一个标识位.在自己的程序运行的时候,想让程序在一个地方等一会,可以用标识为,将flag设置位tr...原创 2020-04-23 21:47:34 · 131 阅读 · 0 评论 -
Lambda表达式演化
我们正常写函数的步骤是1.定义一个函数式接口2.实现接口下面我们推演一下Lambda表达式演化演化过程函数式接口是什么:接口只有一个方法写一个mian方法,测试输出结果public static void main(String[] args) { ILike like = new Love(); like.love(); ILike l...原创 2020-04-21 16:06:38 · 191 阅读 · 0 评论 -
Java基础之----线程的状态
线程的状态1.新建状态:新建状态就是创建线程(new Thread(r),线程还没开始运行,此时线程处在新建状态.2.就绪状态:线程创建出来,执行start方法(new Thread(r).start ),再等待cpu被调度的是时候就是就绪状态3.运行状态:就绪状态的线程获取 CPU 资源,就可以执行 run(),此时线程便处于运行状态4.阻塞状态: 如果一个线程执行了sle...原创 2020-04-21 14:36:47 · 138 阅读 · 0 评论