多线程
八月份的天气
这个作者很懒,什么都没留下…
展开
-
11线程协作
生产着消费者模式应用场景:生产者和消费者问题假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中的产品取走消费如果仓库中中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再次放入产品为止生产者—>数据缓存区---->消费者这是一个线程同步问题生产者和消费者共享一个资源,并且生产者和消费者之间互相依赖,互为条件对于生产者,没有生原创 2021-06-26 22:30:18 · 32 阅读 · 0 评论 -
09死锁synchronized
死锁多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或多个线程都在等待对方释放资源,都停止执行的情形,某一个同步块同时拥有“两个以上对象的锁”,就可能发生“死锁的问题”举例化妆,只有同时拥有镜子和口红的锁才能开始化妆package edu.wzw.TestUnsafe;//死锁:多个线程互相抱着对方需要的资源,然后形成僵持public class DeadLock { public static void main(String[] args)原创 2021-06-26 22:29:45 · 47 阅读 · 0 评论 -
08线程同步
线程同步并发:多个线程操作同一个对象上万人抢同一张音乐节票排队去打饭现实生活中,我们会遇到“同一个资源,多个人都想使用”的问题,比如,食堂排队打饭,每个人都想吃饭,最天然的解决办法就是,排队,一个一个来处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这是hi欧我们就需要线程同步,线程同步其实就是一种等待机制,多个需要同时访问此对象进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程在使用队列和锁每个对象都有一把锁,线程同步形成条件:原创 2021-06-26 22:28:35 · 41 阅读 · 0 评论 -
07守护线程(线程状态)
守护线程(线程状态)线程分为用户线程和守护线程虚拟机必须确保用户线程执行完毕虚拟机不用等待守护线程执行完毕如,后台记录操作日志,监控内存,垃圾回收等待。。package edu.wzw.Teat;import org.omg.PortableServer.THREAD_POLICY_ID;public class TestDaemon { public static void main(String[] args) { God god = new God();原创 2021-06-26 22:28:05 · 50 阅读 · 0 评论 -
06线程的优先级(线程状态)
线程的优先级java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度按照优先级决定应调度哪个线程来执行线程的优先级用数字表示,范围1~10使用以下方法改变或者获取优先级setPriority(int xxx)getPriority()优先级的设定建议在start()调度前优先级低只是意味着获得调度的概率低,并不是优先级低就不会被调用了,这都是看cpu的调度package edu.wzw.Teat;public class Tes原创 2021-06-26 22:25:31 · 45 阅读 · 0 评论 -
05线程状态
线程状态五大状态[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wLbYeuoW-1624717395009)(C:\Users\deku\AppData\Roaming\Typora\typora-user-images\image-20210618161202649.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZitPZLes-1624717280831)(C:\Users\deku\AppData\Roaming\Typo原创 2021-06-26 22:24:36 · 41 阅读 · 0 评论 -
04静态代理
静态代理模式演示:实现静态代理对比Thread静态代理需要代理类和被代理类均实现统一接口,将一些行为容易包装在代理类里,被代理类只需要“调用”即可package edu.wzw.Thread;import java.sql.SQLOutput;/*静态代理模式总结:真实对象和代理对象都要实现一个接口代理对象要代理真实角色好处: 代理对象可以做很多真是对象做不了的事情 真实对象专注做自己的事情*/public class classdemo { public原创 2021-06-26 22:21:12 · 52 阅读 · 0 评论 -
03Lamda表达式
Lambda表达式概念:为什么要用避免匿名内部类定义过多可以然你代码看起来跟简洁去掉一推没有意义的代码其实质属于函数式编程的概念(params)->expression[表达式](params)->statement[语句](params)->{statements} 函数式接口的定义任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数是式接口public interface Runable{ public abstract原创 2021-06-26 22:20:42 · 47 阅读 · 0 评论 -
02案例龟兔赛跑
案例:龟兔赛跑首先来个赛道距离,然后要离终点越来越近判断比赛是否结束打印出胜利者龟兔赛跑开始故事中时乌龟赢的,兔子需要睡觉,所以我们来模拟兔子睡觉终于,乌龟赢得比赛package edu.wzw.Thread;public class Race implements Runnable{ private static String Winner; @Override public void run() { for (int i = 1; i <原创 2021-06-26 22:19:39 · 96 阅读 · 0 评论 -
01多线程
多线程简介创建线程Thread class继承Thread类(重点)1.自定义线程类继承Thread类2.重写run()方法,编写线程执行体3.创建线程对象,调用start()方法启动线程package edu.wzw.Thread;//创建线程方法:继承Thread类,重写run()方法,调用start开启线程//总结:注意,线程开启不一定立即执行,由cpu调度执行public class demo01 extends Thread{ @Override publ原创 2021-06-26 22:19:05 · 64 阅读 · 0 评论