随笔分类 -  学习2

上一页 1 2 3 4 5 6 7 ··· 10 下一页
摘要:lambda有返回值有参数 传统格式 lambda有返回值有参数 Lambda的使用前提Lambda的语法非常简洁,完全没有面向对象复杂的束缚。但是使用时有几个问题需要特别注意:1.使用Lambda必须具有接口,且要求接口中有且仅有一个抽象方法。无论是JDK内置的 Runnable 、compara 阅读全文
posted @ 2022-07-08 13:47 帕拉利斯 阅读(91) 评论(0) 推荐(0) 编辑
摘要:需求:给定一个厨子cook接口,内含唯一的抽象方法makeFood,且无参数、无返回值。使用Lambda的标准格式调用invokeCook方法,打印输出‘吃饭啦!”字样 Lambda表达式有参数有返回值的练习使用数组存储多个Person对象对数组中的Person对象使用Arrays的sort方法通过 阅读全文
posted @ 2022-07-08 11:43 帕拉利斯 阅读(17) 评论(0) 推荐(0) 编辑
摘要:3编程思想转换做什么,而不是怎么做 我们真的希望创建一个匿名内部类对象吗?不。我们只是为了做这件事情而不得不创建一个对象。我们真正希望做的事情是∶将run方法体内的代码传递给Thread类知晓。 传递一段代码――这才是我们真正的目的。而创建对象只是受限于面向对象语法而不得不采取的一种手段方式。那,有 阅读全文
posted @ 2022-07-08 10:50 帕拉利斯 阅读(19) 评论(0) 推荐(0) 编辑
摘要:在数学中,函数就是有输入量、输出星的于套计算方案,也就是"拿什么东西做什么事情"。相对而言, 面向对象过分强调"必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法―—强调做什么,而不是以什么形式做 面向对象的思想:做—件事情,找一个能解决这个事请的对象,调用对象的方法,完成事情. 阅读全文
posted @ 2022-07-08 10:42 帕拉利斯 阅读(85) 评论(0) 推荐(0) 编辑
摘要:线程池概念 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结莉了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被 阅读全文
posted @ 2022-07-08 09:33 帕拉利斯 阅读(19) 评论(0) 推荐(0) 编辑
摘要:包子类 包子铺类 吃货类 消费者(吃货)类:是一个线程类,可以继承Thread设置线程任务(run) :吃包子对包子的状态进行判断false:没有包子吃货调用wait方法进入等待状态true:有包子吃货吃包子吃货吃完包子修改包子的状态为false没有吃货唤醒包子铺线程,生产包子 测试类 阅读全文
posted @ 2022-07-08 09:20 帕拉利斯 阅读(16) 评论(0) 推荐(0) 编辑
摘要:等待唤醒中的方法等待唤醒机制就是用于解决线程间通信的问题的,使用到的3个方法的含义如下∶1. wait :线程不再活动,不再参与调度,进入wait set中,因此不会浪费CPU资源,也不会去竞争锁了,这时的线程状态即是WAITING。 它还要等着别的线程执行一个特别的动作,也即是“通知( notif 阅读全文
posted @ 2022-07-07 20:24 帕拉利斯 阅读(49) 评论(0) 推荐(0) 编辑
摘要:进入到Timewaiting(计时等待)有两种方式1.使用sLeep(Long m)方法,在毫秒值结束之后,线程睡醒进入到Runnable/BLocked状态2.使用wait(Long m)方法, wait方法如果在毫秒值结束之后,还没有被notify唤醒,就会自动醒来,线程睡醒进入到Runnabl 阅读全文
posted @ 2022-07-07 20:17 帕拉利斯 阅读(19) 评论(0) 推荐(0) 编辑
摘要:等待唤醒案例:线程之间的通信创建一个顾客线程(消费者):告知老板要的包子的种类和数量,调用wait方法,放弃cpu的执行,进入到wAITINc状态(无限等待)创建一个老板线程(生产者):花了5秒做包子,做好包子之后,调用notify方法,唤醒顾客吃包子注意:顾客和老板线程必须使用同步代码块包裹起来, 阅读全文
posted @ 2022-07-07 19:56 帕拉利斯 阅读(10) 评论(0) 推荐(0) 编辑
摘要:Lock锁java.util.concurrent.locks.Lock机制提供了比synchronized代码块和synchronized方法更广泛的锁定操作,同步代码块/同步方法具有的功能Lock都有,除此之外更强大,更体现面向对象。Lock锁也称同步锁,加锁与释放锁方法化了,如下:public 阅读全文
posted @ 2022-07-07 19:35 帕拉利斯 阅读(108) 评论(0) 推荐(0) 编辑
摘要:同步方法 静态同步方法 阅读全文
posted @ 2022-07-07 17:46 帕拉利斯 阅读(20) 评论(0) 推荐(0) 编辑
摘要:同步代码块同步代码块:synchronized关键字可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。格式:synchronized(同步锁){需要同步操作的代码} 卖票案例出现了线程安全问题卖出了不存在的票和重复的票解决线程安全问题的一种方案:使用同步代码块格式:synchroniz 阅读全文
posted @ 2022-07-07 16:58 帕拉利斯 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2022-07-07 16:45 帕拉利斯 阅读(14) 评论(0) 推荐(0) 编辑
摘要:匿名内部类方式实现线程的创建匿名:没有名字内部类:写在其他类内部的类匿名内部类作用:简化代码把子类继承父类,重写父类的方法,创建子类对象合一步完成把实现类实现类接口,重写接口中的方法,创建实现类对象合成一步完成匿名内部类的最终产物:子类/实现类对象,而这个类没有名字格式:new父类/接口()重复父类 阅读全文
posted @ 2022-07-07 16:07 帕拉利斯 阅读(18) 评论(0) 推荐(0) 编辑
摘要:采用java.lang .Runnable也是非常常见的一种,我们只需要重写run方法即可 创建多线程程序的第二种方式:实现Runnable接口java.Lang. RunnableRunnable接口应该由那些打算通过某一线程执行其实例的类来实现。类必须定义一个称为run 的无参数方法。java. 阅读全文
posted @ 2022-07-07 15:48 帕拉利斯 阅读(192) 评论(0) 推荐(0) 编辑
摘要:设置线程的名称1.使用Thread类中的方法setName(名字)void setName ( String name)改变线程名称,使之与参数name 相同。2创建一个带参数的构造方法,参数传递线程的名称;调用父类的带参构造方法,把线程名称传递给父类,让父类(Thread)给子线程起一个名字Thr 阅读全文
posted @ 2022-07-07 15:26 帕拉利斯 阅读(214) 评论(0) 推荐(0) 编辑
摘要:获取线程名称 阅读全文
posted @ 2022-07-07 15:17 帕拉利斯 阅读(20) 评论(0) 推荐(0) 编辑
摘要:创建多线程程序的第一种方式:创建Thread类的子类 java.lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类实现步骤: 1.创建一个Thread类的子类 2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么?) 3 阅读全文
posted @ 2022-07-07 15:00 帕拉利斯 阅读(27) 评论(0) 推荐(0) 编辑
摘要:线程调度: 分时调度 所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间。 抢占式调度 优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性), Java使用的为抢占式调度 主线程 Java使用java.lang.Thread类代表线程,所有的线程对象都 阅读全文
posted @ 2022-07-07 14:17 帕拉利斯 阅读(37) 评论(0) 推荐(0) 编辑
摘要:并发:指两个或多个事件在同一个时问段内发生 交替执行 并行:指两个或多个事件在同一时刻发生(同时发生). 同时执行 并行:指两个或多个事件在同一时刻发生(同时发生)。 4.2线程与进程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程﹔ 进程也是程序 阅读全文
posted @ 2022-07-07 12:03 帕拉利斯 阅读(31) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 10 下一页
点击右上角即可分享
微信分享提示