上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 47 下一页
摘要: 等待唤醒案例:线程之间的通信创建一个顾客线程(消费者):告知老板要的包子的种类和数量,调用wait方法,放弃cpu的执行,进入到wAITINc状态(无限等待)创建一个老板线程(生产者):花了5秒做包子,做好包子之后,调用notify方法,唤醒顾客吃包子注意:顾客和老板线程必须使用同步代码块包裹起来, 阅读全文
posted @ 2022-07-07 19:56 帕拉利斯 阅读(16) 评论(0) 推荐(0)
摘要: Lock锁java.util.concurrent.locks.Lock机制提供了比synchronized代码块和synchronized方法更广泛的锁定操作,同步代码块/同步方法具有的功能Lock都有,除此之外更强大,更体现面向对象。Lock锁也称同步锁,加锁与释放锁方法化了,如下:public 阅读全文
posted @ 2022-07-07 19:35 帕拉利斯 阅读(119) 评论(0) 推荐(0)
摘要: 同步方法 静态同步方法 阅读全文
posted @ 2022-07-07 17:46 帕拉利斯 阅读(26) 评论(0) 推荐(0)
摘要: 同步代码块同步代码块:synchronized关键字可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。格式:synchronized(同步锁){需要同步操作的代码} 卖票案例出现了线程安全问题卖出了不存在的票和重复的票解决线程安全问题的一种方案:使用同步代码块格式:synchroniz 阅读全文
posted @ 2022-07-07 16:58 帕拉利斯 阅读(158) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-07-07 16:45 帕拉利斯 阅读(17) 评论(0) 推荐(0)
摘要: 匿名内部类方式实现线程的创建匿名:没有名字内部类:写在其他类内部的类匿名内部类作用:简化代码把子类继承父类,重写父类的方法,创建子类对象合一步完成把实现类实现类接口,重写接口中的方法,创建实现类对象合成一步完成匿名内部类的最终产物:子类/实现类对象,而这个类没有名字格式:new父类/接口()重复父类 阅读全文
posted @ 2022-07-07 16:07 帕拉利斯 阅读(25) 评论(0) 推荐(0)
摘要: 采用java.lang .Runnable也是非常常见的一种,我们只需要重写run方法即可 创建多线程程序的第二种方式:实现Runnable接口java.Lang. RunnableRunnable接口应该由那些打算通过某一线程执行其实例的类来实现。类必须定义一个称为run 的无参数方法。java. 阅读全文
posted @ 2022-07-07 15:48 帕拉利斯 阅读(208) 评论(0) 推荐(0)
摘要: 设置线程的名称1.使用Thread类中的方法setName(名字)void setName ( String name)改变线程名称,使之与参数name 相同。2创建一个带参数的构造方法,参数传递线程的名称;调用父类的带参构造方法,把线程名称传递给父类,让父类(Thread)给子线程起一个名字Thr 阅读全文
posted @ 2022-07-07 15:26 帕拉利斯 阅读(222) 评论(0) 推荐(0)
摘要: 获取线程名称 阅读全文
posted @ 2022-07-07 15:17 帕拉利斯 阅读(28) 评论(0) 推荐(0)
摘要: 创建多线程程序的第一种方式:创建Thread类的子类 java.lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类实现步骤: 1.创建一个Thread类的子类 2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么?) 3 阅读全文
posted @ 2022-07-07 15:00 帕拉利斯 阅读(30) 评论(0) 推荐(0)
上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 47 下一页