摘要:
等待唤醒机制概述 什么是等待唤醒机制: 这是多个线程间的一种协作机制。谈到线程我们经常想到的是线程间的竞争(race),比如去争夺锁,但这并不是 故事的全部,线程间也会有协作机制。就好比在公司里你和你的同事们,你们可能存在在晋升时的竞争, 但更多时 候你们更多是一起合作以完成某些任务。 就是在一个线 阅读全文
posted @ 2022-07-07 20:20
漁夫
阅读(52)
评论(0)
推荐(0)
摘要:
Object类中wait带参方法和notifyAll 进入到Timewaiting(计时等待)有两种方式 1.使用sLeep(long m)方法,在毫秒值结束之后,线程睡醒进入到Runnable/Blocked状态 2.使用wait(long m)方法, wait方法如果在毫秒值结束之后,还没有被n 阅读全文
posted @ 2022-07-07 20:04
漁夫
阅读(31)
评论(0)
推荐(0)
摘要:
等待唤醒案例分析 等待唤醒案例代码实现 等待唤醒案例:线程之间的通信 创建一个顾客线程(消费者):告知老板要的包子的种类和数量,调用wait方法,放弃cpu的执行,进入到wAITING状态(无限等待) 创建一个老板线程(生产者):花了5秒做包子,做好包子之后,调用notify方法,唤醒顾客吃包子 注 阅读全文
posted @ 2022-07-07 19:50
漁夫
阅读(28)
评论(0)
推荐(0)
摘要:
解决线程安全问题-Lock锁 java.util.concurrent.locks.Lock`机制提供了比synchronized代码块和synchronized方法更广泛的锁定操作, 同步代码块/同步方法具有的功能Lock都有,除此之外更强大,更体现面向对象。 Lock锁也称同步锁,加锁与释放锁方 阅读全文
posted @ 2022-07-07 19:31
漁夫
阅读(70)
评论(0)
推荐(0)
摘要:
解决线程安全问题--同步方法 解决线程安全问题的一种方案:使用同步代码块格式: synchronized(锁对象){ 可能会出现线程安全问题的代码(访问了共享数据的代码) } 注意: 1.通过代码块中的锁对象,可以使用任意的对象 2.但是必须保证多个线程使用的锁对象是同一个 3.锁对象作用: 把同步 阅读全文
posted @ 2022-07-07 17:47
漁夫
阅读(39)
评论(0)
推荐(0)
摘要:
解决线程安全问题-同步代码块 当我们使用多个线程访问同一资源的时候,且多个线程中对资源有写的操作,就容易出现线程安全问题。 要解决上述多线程并发访问一个资源的安全性问题:也就是解决重复票与不存在票问题,Java中提供了同步机制(synchronized)来解决。 public class Runna 阅读全文
posted @ 2022-07-07 17:10
漁夫
阅读(36)
评论(0)
推荐(0)
摘要:
线程安全问题的代码实现 public class RunnableImpl implements Runnable{ private int ticket = 100; //设置线程任务:卖票 @Override public void run() { //使用死循环,让卖票操作重复执行while( 阅读全文
posted @ 2022-07-07 16:54
漁夫
阅读(26)
评论(0)
推荐(0)
摘要:
匿名内部类方式实现线程的创建 匿名内部类方式实现线程的创建 匿名:没有名字 内部类:写在其他类内部的类匿名内部类作用:简化代码 把子类继承父类,重写父类的方法,创建子类对象合一步完成 把实现类实现类接口,重写接口中的方法,创建实现类对象合成一步完成匿名内部类的最终产物:子类/实现类对象,而这个类没有 阅读全文
posted @ 2022-07-07 15:18
漁夫
阅读(85)
评论(0)
推荐(0)
摘要:
创建多线程程序的第二种方式-实现Runnable接口 java.lang. Runnable也是非吊军儿的一种,我们只需要重与run万法即可。 步骤如下∶ 1.定义Runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。 ⒉创建Runnable实 阅读全文
posted @ 2022-07-07 15:05
漁夫
阅读(48)
评论(0)
推荐(0)
摘要:
Thread类的常用方法--设置线程名称的方法 设置线程的名称:(了解)1.使用Thread类中的方法setName(名字) void setName ( String name)改变线程名称,使之与参数name相同。2.创建一个带参数的构造方法,参数传递线程的名称;调用父类的带参构造方法,把线程名 阅读全文
posted @ 2022-07-07 14:42
漁夫
阅读(216)
评论(0)
推荐(0)
摘要:
多线程原理-多线程内存图解 Thread类的常用方法-获取线程名称的方法 获取线程的名称: 1.使用Thread类中的方法getName() String getName()返回该线程的名称。 2.可以先获取到当前正在执行的线程,使用线程中的方法getName()获取线程的名称 static Thr 阅读全文
posted @ 2022-07-07 14:20
漁夫
阅读(29)
评论(0)
推荐(0)
摘要:
创建多线程程序的第一种方式-创建Thread类的子类 创建多线程程序的第一种方式:创建Thread类的子类 java.Lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类 实现步骤: 1.创建一个Thread类的子类 2.在Thread类的子类中重写Thread 阅读全文
posted @ 2022-07-07 14:00
漁夫
阅读(23)
评论(0)
推荐(0)
摘要:
线程调度 分时调度 所有线程轮流使用CPU 的使用权,平均分配每个线程占用CPU 的时间。 抢占式调度 优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的为抢占式调度。 主线程 Java使用java.lang.Thread类代表线程,所有的线程对象 阅读全文
posted @ 2022-07-07 11:56
漁夫
阅读(75)
评论(0)
推荐(0)
摘要:
进程概念 进程︰是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。 线程∶线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一 阅读全文
posted @ 2022-07-07 11:39
漁夫
阅读(144)
评论(0)
推荐(0)
摘要:
自定义异常练习 /** * * @author Administrator *自定义一个异常类,该异常为文件上传出错的异常 *在自定义类对象当中设定两个构造函数来实现对出现的异常信息进行抛出操作 */ public class FileUpException extends Exception{ F 阅读全文
posted @ 2022-07-07 11:15
漁夫
阅读(24)
评论(0)
推荐(0)
摘要:
异常注意事项--子父类异常 public class Fu { public void show01() throws NullPointerException,ClassCastException{} public void show02() throws IndexOutOfBoundsExce 阅读全文
posted @ 2022-07-07 10:50
漁夫
阅读(101)
评论(0)
推荐(0)
摘要:
异常注意事项-多异常的捕获处理 多个异常使用捕获又该如何处理呢? 1.多个异常分别处理。 2.多个异常一次捕获,多次处理。 3.多个异常一次捕获一次处理。 //1.多个异常分别处理。 try{ int[] arr = {1,2,3}; System.out.println(arr[3]);//Arr 阅读全文
posted @ 2022-07-07 10:26
漁夫
阅读(36)
评论(0)
推荐(0)
摘要:
Throwable类中3个异常处理的方法 Throwable类中定义了一些查看方法: public string getMessage() 获取异常的描述信息,原因(提示给用户的时候,就提示错误原因。 public String tostring():获取异常的类型和异常描述信息(不用)。 publ 阅读全文
posted @ 2022-07-07 10:06
漁夫
阅读(63)
评论(0)
推荐(0)
摘要:
Throws关键字--异常处理的第一种方式,交给别人处理 声明异常∶将问题标识出来,报告给调用者。如果方法内通过throw抛出了编译时异常,而没有捕获处理(稍后讲解该方式),那么必须通过throws进行声明,让调用者去处理。 关键字throws运用于方法声明之上,用于表示当前方法不处理异常,而是提醒 阅读全文
posted @ 2022-07-07 09:48
漁夫
阅读(78)
评论(0)
推荐(0)
摘要:
throw关键字 在编写程序时,我们必须要考虑程序出现问题的情况。比如,在定义方法时,方法需要接受参数。 那么,当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断,数据若不合法,就应该告诉调用者,传递合法的数据进来。 这时需要使用抛出异常的方式来告诉调用者。 在java中,提供了一个t 阅读全文
posted @ 2022-07-07 09:12
漁夫
阅读(92)
评论(0)
推荐(0)

浙公网安备 33010602011771号