Java基础篇--多线程
文章平均质量分 72
Java基础多线程
coder鹏鹏
这个作者很懒,什么都没留下…
展开
-
线程池
线程池一、线程池1、JVM使用的是KLT的线程模型2、ULT:KLT = 1:13、线程池工作原理public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit,原创 2021-01-28 19:47:21 · 198 阅读 · 0 评论 -
Java多线程(8):并发协作_生产者消费者模式(管程法、红绿灯法)
一、生产者消费者模式1、解决的是线程通信的问题。(解耦、效率高)2、管程法:生产者和消费者之间设置一个缓冲区,生产者和消费者之间的耦合度较低,维护简单。(解耦)3、红绿灯法二、解决线程通信问题的三个方法1、final void wait():表示线程一直等待,直到其他线程通知,与sleep()不同,会释放锁。2、final void wait(long timeout):指定等待的毫...原创 2020-02-11 11:29:11 · 266 阅读 · 0 评论 -
Java多线程(7):并发_线程同步_队列与锁(Synchronized)
一、并发举例1、两个人同时操作一张银行卡,如何保证线程安全。2、多个人同时购买一张火车票,谁能买到?原创 2020-02-10 22:09:45 · 371 阅读 · 1 评论 -
Java多线程(6):优先级、守护线程
一、优先级:priority1、线程优先级1-10,只代表优先执行概率更大,不代表绝对的顺序Thread.MIN_PRIORITY = 1;Thread.MAX_PRIORITY = 10;Thread.NORM_PRIORITY = 5;2、获取线程等级int getPriority()3、设置线程等级void setPriority( int newPriority)4、优先级...原创 2020-02-08 16:41:43 · 97 阅读 · 0 评论 -
Java多线程(5):线程的生命周期(5种状态)
1、新生状态:new了一个对象之后进入新生状态。2、就绪状态:(1)start()方法进入就绪状态。(2)在运行过程中遇到了阻塞,阻塞事件解除之后进入就绪状态。(3)yield()让出CPU调度之后线程进入就绪状态。(4)JVM从本地线程切换到其他线程。3、运行状态:CPU执行线程。4、阻塞状态:(1)sleep()(2)join()(3)wait()(4)IO操作read...原创 2020-02-08 16:07:14 · 330 阅读 · 0 评论 -
Java多线程(4):lambda简化线程
一、静态内部类、局部内部类、匿名内部类(定义的线程只使用一次)1、静态内部类:嵌套在另一个类的里面,直接实例化内部的类,外面的类不编译 public class LambdaThread { static class Test implements Runnable{ public void run() { for(int i=0;i<20;i++) { ...原创 2020-02-05 23:21:09 · 231 阅读 · 0 评论 -
Java多线程(2):Runnable小例子
1、3个黄牛抢99张票,竞争同一资源public class Web12306 implements Runnable{ private int ticketNums = 1; public void run() { while(true) { if(ticketNums<0) { break; } //模拟网络延时 try { ...原创 2020-02-05 22:55:56 · 294 阅读 · 0 评论 -
Java多线程(1):创建多线程
一、多线程创建方法1、继承Tread类。2、实现Runnable接口。(多用这个接口)3、实现callable接口。二、推荐使用实现Runnable接口1、必须重写run()方法,run()方法是线程体。2、Thread类可以通过start()方法将多线程交给虚拟机进行执行。3、Runnable接口没有start()方法,需要借助新建Thread对象进行代理交给虚拟机执行。 pub...原创 2020-02-05 21:28:29 · 487 阅读 · 0 评论