摘要:
编程思想转换&体验Lambda的更优写法 我们真的希望创建一个匿名内部类对象吗?不。我们只是为了做这件事情而不得不创建一个对象。我们真正希望做的事情是︰ 将run方法体内的l弋码传递给Thread类知晓。 传递一段代码——这才是我们真正的目的。而创建对象只是受限于面向对象语法而不得不采取的一种手段方 阅读全文
摘要:
函数式编程思想概述 在数学中,函数就是有输入量、输出量的一套计算方案,也就是"拿什么东西做什么事情"”。相对而言,面向对象过分强调"必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法――强调做什么,而不是以什么形式做。 面向对象的思想: 做一件事情,找一个能解决这个事情的对象,调 阅读全文
摘要:
线程池的概念和原理 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时闻。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 线程池∶其实就是一个容纳多个线程的 阅读全文
摘要:
等待唤醒机制代码实现-包子类&包子铺类 资源类: 包子类设置包子的属性 皮 陷包子的状态:有true,没有false 包子类 包子铺 吃货类&测试类 吃货类 测试类 搜索 复制 阅读全文
摘要:
等待唤醒机制概述 什么是等待唤醒机制: 这是多个线程间的一种协作机制。谈到线程我们经常想到的是线程间的竞争(race),比如去争夺锁,但这并不是 故事的全部,线程间也会有协作机制。就好比在公司里你和你的同事们,你们可能存在在晋升时的竞争, 但更多时 候你们更多是一起合作以完成某些任务。 就是在一个线 阅读全文
摘要:
Object类中wait带参方法和notifyAll方法 进入到Timewaiting(计时等待)有两种方式 1.使用sLeep(long m)方法,在毫秒值结束之后,线程睡醒进入到Runnable/Blocked状态 2.使用wait(long m)方法, wait方法如果在毫秒值结束之后,还没有 阅读全文
摘要:
等待唤醒案例分析 等待唤醒案例实现 等待唤醒案例:线程之间的通信 创建一个顾客线程(消费者):告知老板要的包子的种类和数量,调用wait方法,放弃cpu的执行,进入到wAITING状态(无限等待) 创建一个老板线程(生产者):花了5秒做包子,做好包子之后,调用notify方法,唤醒顾客吃包子 注意: 阅读全文
摘要:
解决线程安全问题Lock锁 java.util.concurrent.locks.Lock`机制提供了比synchronized代码块和synchronized方法更广泛的锁定操作, 同步代码块/同步方法具有的功能Lock都有,除此之外更强大,更体现面向对象。 Lock锁也称同步锁,加锁与释放锁方法 阅读全文
摘要:
解决线程安全问题同步方法 解决线程安全问题的一种方案:使用同步代码块格式: synchronized(锁对象){ 可能会出现线程安全问题的代码(访问了共享数据的代码) } 注意: 1.通过代码块中的锁对象,可以使用任意的对象 2.但是必须保证多个线程使用的锁对象是同一个 3.锁对象作用: 把同步代码 阅读全文