多线程基础
多线程很关键
如是清欢
加油(ง •̀_•́)ง
展开
-
多线程之线程同步与三大不安全案例
线程同步 使用场景:出现并发,多个线程操作同一个资源。处理多线程问题时,多个线程访问同一个对象,并且某个线程还想修改这个对象,这个时候我们就需要线程同步。线程同步就是一种等待机制,多个需要同时访问此对象的线程进入对象的等待池,形成队列,等待前面线程使用完毕,下一个线程再使用。由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突的问题,为了保证数据在方法中被访问的正确性,在访问时加入锁机制(synchronized),当一个线程获得对象的排它锁,独占资源,其他线程原创 2021-06-30 22:29:58 · 202 阅读 · 2 评论 -
多线程之线程状态
## 线程状态五大状态1.创建状态:Thread thread = new Thread(); 线程对象一旦创建就进入了新生状态。2.就绪状态:当调用start()方法时,进入就绪状态,但不代表立即调度执行(等待cpu调度)。3.运行状态或同态:进入运行状态,线程才真正执行线程体的代码块。4. 阻塞状态:当调用sleep,wait或同步锁定时,线程进入阻塞状态,就是代码不往下执行,阻塞解除后进入就绪状态,等待cpu调度。5.死亡状态:线程中断或者结束,进入死亡状态,不能再次启动。停止线程原创 2021-06-24 10:09:48 · 3080 阅读 · 0 评论 -
多线程之Lambda表达式
Lambda表达式 Lambda表达式:避免匿名内部类定义过多,去掉一些没有意义的代码,去掉没有意义的代码,只留下核心的逻辑,其本质属于函数式编程的概念(jdk8新增!)。 new Thread (()->System.out.print(“Lamda表达式”)).start(); 使用lambda表达式必须是函数式接口。推导lambda表达式public class TestLambda01 { //静态内部类 static class Like2 i原创 2021-06-24 09:39:00 · 260 阅读 · 0 评论 -
多线程之静态代理模式
静态代理模式真实对象和代理对象都要去去实现同一个接口代理对象需代理真实角色。好处:代理对象可以做很多真实对象做不了的事情真实对象专注做自己的事情。示例代码:public class StaticProxy { public static void main(String[] args) { //多线程Thread底层使用了代理模式。 //You you = new You();//你要结婚 new Thread( ()->原创 2021-06-24 09:35:14 · 146 阅读 · 0 评论 -
多线程小练习----下载图片,买火车票,龟兔赛跑
练习thread实现多线程下载图片public class TestThread02 extends Thread{ private String url; private String name; public TestThread02(String url,String name){ this.url = url;//图片地址 this.name = name;//文件名 } //下载图片线程执行体 @Override原创 2021-06-24 09:24:22 · 55 阅读 · 0 评论 -
多线程概念以及线程创建的三种方式
多线程多任务,多线程Process进程1.在操作系统中运行的程序就是进程,一个进程可以有多个线程,如视频中听声音,看图像,看弹幕等。2.程序是指令和数据的有效集合,其本身没有任何运行的含义,是一个静态的概念。 而进程则是执行程序的一次执行过程,是一个动态的概念,是系统资源分配的单位。3.通常在一个进程中可以包含若干个线程,且至少有一个线程,不然没有存在的意义,线程是CPU调度和执行的单位。注意:很多多线程是模拟出来的,真正的多线程是值多个cpu,即多核,如服务器;如果是模拟出来的多线程,原创 2021-06-24 09:19:18 · 91 阅读 · 1 评论