多线程
文章平均质量分 80
zrkzzz
这个作者很懒,什么都没留下…
展开
-
05线程协作
生产者消费者应用场景:生产者和消费者问题假设仓库中只能存放一件产品﹐生产者将生产出来的产品放入仓库﹐消费者将仓库中产品取走消费.如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止.如果仓库中放有产品,则消费者可以将产品取走消费﹐否则停止消费并等待,直到仓库中再次放入产品为止.分析这是一个线程同步问题,生产者和消费者共享同一个资源,并且生产者和消费者之间相互依赖,互为条件.对于生产者,没有生产产品之前,要通知消费者等待﹒而生产了产品之后,原创 2021-12-21 10:58:28 · 82 阅读 · 0 评论 -
04死锁、锁、synchronized与Lock的对比
死锁多个线程各自占有一些共享资源﹐并且互相等待其他线程占有的资源才能运行﹐而导致两个或者多个线程都在等待对方释放资源﹐都停止执行的情形﹒某一个同步块同时拥有“两个以上对象的锁”时﹐就可能会发生“死锁”的问题.//没有死锁//多个线程互相占有对方需要的资源,形成僵持public class DeadLock { public static void main(String[] args) { Makeup gi=new Makeup(0,"kimi"); Mak原创 2021-12-21 10:25:45 · 93 阅读 · 0 评论 -
03线程同步
线程同步多个线程操作同一资源并发同一个对象被多个线程同时操作处理多线程问题时,多个线程访问同一个对象(并发)﹐并且某些线程还想修改这个对象.这时候我们就需要线程同步.线程同步其实就是一种等待机制﹐多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面线程使用完毕,下一个线程再使用队列 和 锁线程同步的条件 = 队列+锁 (保证安全性)由于同一进程的多个线程共享同一块存储空间﹐在带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中被访问时的正确性,在访问原创 2021-12-21 09:45:24 · 77 阅读 · 0 评论 -
02线程状态
静态代理举例:人:真实的角色公司:代理你,帮忙处理关于某件事某件事:公司提供一个接口,然后做这个事//代理对象可以做真实对象做不了的事,真实对象可以只做自己的事public class StaticProxy { public static void main(String[] args) { You you = new You();//真实对象 new Thread(()->System.out.println("love"))原创 2021-12-20 12:19:08 · 95 阅读 · 0 评论 -
01线程实现
Thread class 继承Thread(重点)创建一个新的类,该类继承 Thread 类,然后创建一个该类的实例。继承类必须重写 run() 方法,该方法是新线程的入口点。它也必须调用 start() 方法才能执行。该方法尽管被列为一种多线程实现方式,但是本质上也是实现了 Runnable 接口的一个实例。//创建线程方法一:继承Thread类,重写Run()方法,调用start()开启线程public class TestThread01 extends Thread{原创 2021-12-19 18:06:53 · 91 阅读 · 0 评论 -
线程、进程、协议
多线程一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。这里定义和线程相关的另一个术语 - 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。一个线程的周期[外链图片转存失败,源站可能有防盗链机制,建议将原创 2021-12-19 15:41:00 · 333 阅读 · 0 评论