什么是多线程之间的通讯
-
多个线程对同一个资源(共享资源),每个线程对共享资源做的动作或者操作不同
-
多线程通讯的生产者和消费者
-
生产者线程(inputThread):叫做提供(发布)资源,做写的操作
-
消费者线程(outThread):叫做利用(消费)资源,做读的操作
-
-
线程安全问题
可见性不具备原子性 -
如何解决:让两个线程使用同一把锁
-
wait()与notify()的区别
如何做到生产者生产一个,消费者消费一个?如果生产者没有任何生产,消费者不能读,消费者还没消费完,生产者不能进行生产
wait() :让当前线程从运行状态变为休眠状态,释放锁资源 需要notify唤醒
notify():让当前线程从休眠状态变为运行状态 缓冲 同步才能使用 (拿到锁)
sleep() :让当前线程从运行状态变为休眠状态,不释放资源 时间到了就唤醒
网友评论