上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 53 下一页
摘要: 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)
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 53 下一页