随笔分类 - Java多线程
摘要:线程同步 多个线程操作同一个资源 现实生活中,我们会遇到“同一个资源,多个人都想使用”的问题,比如,食堂排队打饭,每个人都想吃饭,最天然的解决办法就是,排队,一个个来。 处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象。这时候我们就需要线程同步,线程同步其实就是一种等待机制,多
阅读全文
摘要:线程协作 生产者消费者模式 应用场景:生产者和消费者问题 假设仓库只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止。 如果仓库中放有产品,则消费者可以将产品取走消费,否则停止
阅读全文
摘要:同步块 同步块:synchronized(Obj) Obj称之为同步监视器 Obj可以是任何对象,但是推荐使用共享资源作为同步监视器 同步方法中无需指定同步监视器,因为同步方法的同步监视器就是this,就是这个对象本身,或者是class[反射中讲解] 同步监视器的执行过程 第一个线程访问,锁定同步监
阅读全文
摘要:线程优先级 Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。 线程的优先级用数字表示,范围从1~10 Thread.MIN_PRIORITY = 1; Thread.MAX_PRIORITY = 10; Thread.NORM_PR
阅读全文
摘要:线程状态 停止线程 不推荐使用JDK提供的stop(), destroy()方法,(已废弃) 推荐线程自己停止下来 建议使用一个标志位进行终止变量当flay=false,则终止线程运行。 package com.xiao.state; //1.建议线程正常停止--利用次数,不建议死循环。 //2.建
阅读全文
摘要:Lamda表达式 希腊字母表中排序第十一位的字母,英语名称为Lambda 避免匿名内部烃定义过多 其实质属于函数式编程的概念 (params)->expression[表达式] (params)->statement[语句] (params)-> a->System.out.println("i l
阅读全文
摘要:静态代理 package com.xiao.demo02; //静态代理模式总结: //真实对象和代理对象都要实现同一个接口 //代理对象要代理真实 //好处,代理对象可以做很多真实对象做不了的事情 //真实对象专注做自己的事情 public class StaticProxy { public s
阅读全文
摘要:实现Runnable 查看JDK帮助文档 定义MyRunnable类实现Runnable接口 实现run()方法,编写线程执行体 创建线程对象,调用start()方法启动线程 推荐使用Runnable对象,因为Java单继承的局限性 package com.xiao.demo01; //创建线程方式
阅读全文
摘要:实现Callable接口 实现Callable接口,需要返回值类型 重写call方法,需要抛出异常 创建目标对象 创建执行服务:ExecutorService ser = Executors.newFixedThreadPool(1); 提交执行:Futureresult1 = ser.submit
阅读全文
摘要:线程简介 任务,进程,线程,多线程 多任务 现实中太多这样同时做多件事情的例子了,看起来是多个任务都在做,其实本质上我们的大脑在同一时间依旧只帮了一件事情。 多线程 原来是一条路,慢慢因为车太多了,道路堵塞,效率极低。为了提高使用的效率,能够充分利用道路,于是加了多个车道。就不用担心道路堵塞了。 普
阅读全文

浙公网安备 33010602011771号