![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java 多线程
秃头中成长
这个作者很懒,什么都没留下…
展开
-
线程间通信(等待唤醒机制)
线程是非常重要的。凡是涉及到多线程的一定要注意线程安全的问题。这里说的等待唤醒机制,wait() notify(); 例如有两条线程,一条是生产线程,另一条是消费线程。在没用生产出来物品的时候。消费线程要进行等待wait(),同时要唤醒生产线程notify(),生产线程要生产物品,生产完物品之后要让生产线程等待wait(),同时要唤醒消费线程消费。 要注意在这其中要注意线程之间的安全问题。 直接上...原创 2020-04-28 08:34:48 · 141 阅读 · 0 评论 -
线程安全问题
线程安全问题 (线程安全)单线程程序不会产生安全问题,多线程程序运行时,访问各自的资源时;也不会产生线程安全问题。 (线程不安全)多线程程序运行时,访问公共的资源。这时会产生线程安全问题。 例如:一电影院里面有100百张电影票,单线程程序相当于一个卖票窗口,现在有多个窗口卖票,一起卖这100张票,当有多个窗口,同时卖同一张票的时候,就会产生线程安全问题。也就是同时卖同一张票,1窗口已经卖了出去,2...原创 2019-10-25 17:41:55 · 74 阅读 · 0 评论 -
匿名内部类
匿名内部类 匿名:没有名字。 内部类:写在其他类内部的类。 匿名内部类的作用:主要是为了简化代码, 把子类继承父类重写父类的方法创建子类的对象一步完成。 把子类实现类接口,重写类接口的方法,创建实现类的对象实现一步完成。 匿名内部类的最终产物:子类/实现类的对象,而这个类没有名字。 格式: new 父类/接口(){ 重写父类/接口中重写的方法 } public static void main(...原创 2019-09-28 22:45:02 · 55 阅读 · 0 评论 -
创建线程的几种方式
创建线程的几种方式 1.实现Thread类重写父类中的run()方法,将多线程实现的功能都放到run()方法中,然后通过子类对象调用start()方法。 public class MyThread extends Thread{ @Override public void run() { for(int i=0;i<20;i++){ Sy...原创 2019-09-30 09:41:32 · 115 阅读 · 0 评论 -
线程安全问题
当多个线程执行过程中有可能会发生线程安全问题。 单线程不会发生出现这种问,当多条线程运行过程中访问各自独立的资源的过程中也不会出现这种问题,只有当多条线程同时访问公共的资源的时候会出现线程安全问题。 例如:一个景点同时卖100张票,有三个窗口同时卖第一张票(同一张票)同一时刻当1窗口已经卖了第一张票的时候,2,3窗口也在卖,实际上这张票已经卖出去了。出现了不存在的票。这时候就产生了线程安全问题。 ...原创 2019-09-30 11:32:37 · 80 阅读 · 0 评论