随笔分类 -  多线程

摘要:一:其实线程通信也是线程同步的一种 一:生产者消费者初级模型 总结: 这里是应该是哇哈哈哈冰红茶,但是这里是康师傅冰红茶; 这里需要我们将共享资源product作为同步监视器,分别在生产者与消费者都上锁,synchronized(product)就可以了,我们的锁对象是产品; 这样我们就不会出现康师 阅读全文
posted @ 2022-03-14 12:10 iLisa 阅读(47) 评论(0) 推荐(0) 编辑
摘要:一:研究方向:synchronize lock 同步方法,同步代码块, lock与unlock的使用, lock 与synchronize 的比较 ①:synchronize使用同步与不同步的区别: 未使用synchronizepublic class Threadtongbu implements 阅读全文
posted @ 2022-03-13 10:46 iLisa 阅读(38) 评论(0) 推荐(0) 编辑
摘要:一:线程池 有四种创建线程池方法,但是我们开发是不推荐使用的,我们可以直接自己创建线程池,来配置我们需要的参数来实现 Executors.newCachedThreadPool();Executors.newFixedThreadPool(5);Executors.newSingleThreadEx 阅读全文
posted @ 2022-03-08 14:35 iLisa 阅读(24) 评论(0) 推荐(0) 编辑
摘要:一:多线程 当线程处于就绪状态的时候(new Thread().start();),不能立马执行(立马执行run()方法),而是要等待cpu的调度,所以我们所写得多线程不是我们所能控制的。 a>.currentThread():静态方法获取当前线程对象 : Thread.currentThread( 阅读全文
posted @ 2021-05-03 13:45 iLisa 阅读(61) 评论(0) 推荐(0) 编辑
摘要:一:应用场景:生产者和消费者问题 ①假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费 ②如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止 ③如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓 阅读全文
posted @ 2021-05-03 12:01 iLisa 阅读(105) 评论(0) 推荐(0) 编辑
摘要:一:Lock锁(去别synchronized,Lock是显示的定义同步锁,而synchronized是隐式的定的不知道锁的谁) ①从jdk5.0开始,java提供了更强大的线程同步机制--通过显示定义同步锁对象来实现同步。同步锁使用Lock对象充当 ②java.util‘.concurrent.lo 阅读全文
posted @ 2021-04-30 17:24 iLisa 阅读(106) 评论(0) 推荐(0) 编辑
摘要:一:死锁 ①多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致俩个或多个线程都在等待对方释放资源,都停止执行的情形,某一个同步块同时拥有“俩个以上对象的锁”时,就可能发生死锁的问题。 ②产生死锁的是个必要条件 A互斥条件:一个资源每次只能被一个进程使用 B请求与保持条件:一 阅读全文
posted @ 2021-04-30 16:52 iLisa 阅读(62) 评论(0) 推荐(0) 编辑
摘要:一:解决自己以前的疑问 比如:创建三个对象 class Test7 implements Runnable{ private int i=10; @Override public void run() { System.out.println(Thread.currentThread().getNa 阅读全文
posted @ 2021-04-30 15:40 iLisa 阅读(133) 评论(0) 推荐(0) 编辑
摘要:一:线程礼让 ①礼让线程,让当前正在执行的线程暂停,但不阻塞 ②将线程从运行状态转为就绪状态 ③让cpu重新调度,礼让不一定成功,看cpu 其实yield的作用就是让我们的运行时的线程转变为就绪状态的线程,和那些就绪的线程一起竞争 class Yield implements Runnable{ p 阅读全文
posted @ 2021-04-30 11:59 iLisa 阅读(103) 评论(0) 推荐(0) 编辑
摘要:一:线程状态 ①新建:Thread t=new Thread();线程对象一旦创建就进入到新生状态。 ②就绪:当我们调用start()方法,线程立即进入就绪状态,但不意味立即调度执行。 ③运行:运行run()方法(是我们进入就绪状态后,我们cpu调用我们的线程我们就开始执行run方法),进入运行状态 阅读全文
posted @ 2021-04-30 09:46 iLisa 阅读(117) 评论(0) 推荐(0) 编辑
摘要:一:进程的概念 电脑中时会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的。比如下图中的QQ、酷狗播放器、电脑管家等等。 二:多线程的概念 进程想要执行任务就需要依赖线程。换句话说,就是进程中的最小执行单位就是线程,并且一个进程中至少有一个线程。 那什么是多线程?提到多线程 阅读全文
posted @ 2021-04-30 09:05 iLisa 阅读(47) 评论(0) 推荐(0) 编辑
摘要:一:理解Functional Interface(函数式接口)是学习Java8 lamda表达式的关键所在 Lamda表达式使用条件:前提是接口为函数式接口;(函数式接口是指接口中只有一个方法) Lamda表达式主要是将我们的匿名内部类省略后的结果(匿名内部类主要是要接口实现的:没有实现类) pub 阅读全文
posted @ 2021-04-29 17:35 iLisa 阅读(145) 评论(0) 推荐(0) 编辑
摘要:一:先进行一下总结 package test; public class aaa { public static void main(String[] args) { Dai dai=new Dai(new You()); dai.chi(); } } interface Mam{ public v 阅读全文
posted @ 2021-04-27 18:36 iLisa 阅读(51) 评论(0) 推荐(0) 编辑
摘要:一:实现Callable接口(了解) ①实现Callable接口,需要返回值类型 ②重写call()方法,需要抛出异常 ③创建目标对象 ④创建执行服务: ExecuteService ser=Executors.newFixedThreadPool(1); ⑤提交执行: Future<Boolean 阅读全文
posted @ 2021-04-27 17:39 iLisa 阅读(119) 评论(0) 推荐(0) 编辑
摘要:一:线程的实现(重点) 1.普通线程和多线程的区别 当我们是第一个图的时候,我们首先主线程后,调用run方法后我们就会一直执行run方法,知道run方法执行结束后,我们才能继续执行我们的主线程; 当我们第二图的时候,我们首先主线程,到调用start方法后,我们主线程和子线程可以同时执行。互补干扰。 阅读全文
posted @ 2021-04-23 17:08 iLisa 阅读(74) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示