![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Thread
文章平均质量分 78
小天王.啊靖哟
这个世界很烦 但是你要很可爱哟
展开
-
java成神之路——死锁和Lock锁
在看这篇博客之前,建议去看上一篇博客同步方法,这篇对synchronized关键字作了解释。 死锁 多个线程各自占有一些共享资源,并且相互等待其它线程占有的资源释放才能运行,而导致多个线程都在等待对方的资源,都停止执行的情形,某一个同步块同时拥有 “两个以上对象的锁” 时就有可能发生死锁的问题。 package thread.lock; //d多个线程互相抱着对方需要的资源,然后形成僵持 public class DeadLock { public static void main(String[原创 2020-12-23 15:42:41 · 179 阅读 · 0 评论 -
java成神之路——线程的状态以、线程的方法、线程的优先级、守护线程
线程的五种状态 线程的状态有新生(new)、就绪、运行、堵塞、死亡(dead),下面用图来说明他们之间的联系 New:线程对象一旦创建就进入到新生状态 Thread t= new Thread(); 就绪:当调用start()方法,线程立即进入到就绪状态,但不意味着立即调度执行; 运行:进入运行状态,线程才真正执行线程体的代码块; dead:线程中断或者结束,一旦进入死亡状态就不能再次启动 堵塞:当调用sleep、wait或同步锁定的时候,线程进入堵塞状态,就是代码不往下执行,堵塞事件解除后,重新进入就绪原创 2020-12-17 11:36:26 · 234 阅读 · 1 评论 -
java成神之路——Lamda表达式推导
Lamda表达式 λ希腊字母表中排名第11位的字母,英文名称位Lamda。 使用lamda表达式避免内部内定义过多 其实质属于函数式编程 为什么要使用Lamda表达式 避免内部内定义过多 可以让代码看起来更加简洁 去掉了没有意义的代码,保留了核心的代码 学习lamda前需要明白 理解Funcation Interface(函数式接口)是学习java8 lamda表达式的关键所在。 函数式接口的定义 任何接口如果只包含唯一一个抽象方法,那么它就是一个函数式接口 public Interface R原创 2020-12-15 17:50:21 · 270 阅读 · 2 评论 -
java成神之路——静态代理对比Thread
静态代理设计模式 要求:真实角色、代理角色;真实角色和代理角色要实现同一个接口;代理角色要持有真实角色的引用。 在Java中线程的设计就使用了静态代理设计模式,其中自定义线程类实现Runable接口,Thread类也实现了Runalbe接口,在创建子线程的时候,传入了自定义线程类的引用,再通过调用start()方法,调用自定义线程对象的run()方法。实现了线程的并发执行。 public class Test1{ public static void main(String args[]){ //实现R原创 2020-12-15 15:55:56 · 196 阅读 · 0 评论 -
java成神之路——初始并发+龟兔赛跑案例
并发与并行 并发:是指同一时间段内多个任务同时都在进行,并且都没有执行结束,并发任务强调在同一时间段内同时进行,而同一时间段由多个单位时间累积而成,所以说并发的多个任务在单位时间内不一定同时在执行。它强调的是时间段内同时执行。 并行:是说在单位时间内多个任务同时在执行 。 在多线程编程实践中,线程的个数往往多余CPU的个数,所以一般都称多线程并发编程而不是多线程并行编程。 线程的个数往往多于CPU的个数,所以一般都称多线程并发编程而不是多线程并行编程。 多个线程同时操作共享变量1时,会出现线程1更新共享变原创 2020-12-15 10:58:07 · 229 阅读 · 1 评论 -
java成神之路——多线程之线程创建的三种方式
基本概念 进程与进程 说起进程就不得说一下程序,程序是指令和数据的有序集合,起本身就没有任何运行的含义,是一个静态的概念。 而进程就是执行程序的一个执行过程,他是一个动态的概念,是系统资源分配的单位。 通常在一个进程中包含多个线程,当然一个进程中至少有一个线程,不然没有存在的意义,线程是cpu调度和执行的单位。 注意: 很多多线程是模拟出来的,真正的多线程是指有多个CPU即多核,如服务器;如果是模拟出来的多线程即在一个cup的情况下,在同一个时间点cpu只能执行一个代码,因为切换很快,所以就有同时执行的错原创 2020-12-11 11:17:46 · 208 阅读 · 0 评论 -
java成神之路——同步方法
Synchronized synchronized方法控制对“对象”的访问,每个对象对应一把锁,每个synchronized方法都必须获得调用该方法的对象的锁才能进行,否则线程会堵塞,方法但执行就独占该锁,直到该方法返回才释放锁,后面被堵塞的线程才能获得这把锁。 同步方法 同步方法:只需要在方法上加上Synchronized便可 同步方法:public synchronized void method(){} 缺陷:将方法声明为一个同步方法会影响效率 以下这个卖票程序是线程不安全的 public class原创 2020-12-23 09:48:59 · 166 阅读 · 0 评论