java线程简单问题
初学者问个java线程间通信的简单问题。
两个线程,一个从串口取数据,一个显示。从串口读数据的线程完成一次读取之后如何通知显示线程呢?我现在做的是显示的线程不断的去缓冲区里检查是否有新数据到达,有没有更好的方法?java里有好多fire函数是干这个的吗?
谢谢了!
[解决办法]
使用管道,PipedInputStream, PipedOutputStream,
对于他们的使用,google
[解决办法]
用一个同步锁,应该能解决问题
[解决办法]
public class display{
public static void main(String args[]){
Thread t = new Reader()
t.start();
synchronized(t){
try{ t.wait();}catch(Exception e){}
...
}
}
}
class reader extends thread{
public void run(){
synchronized(this){
//读取
notify();
}
}
}
用wait()和notify()
[解决办法]
wait()和notify()是java中用来控制线程交互的两个方法,是Object的方法,使用时要先得到这个object的lock
[解决办法]
一个发送 一个接收类
通过PipedInputStream PipedOutputStream来写和读就可以了
[解决办法]
建议用同步来处理,
一个线程是生产者,不停的生产产品,
另一个线程是消费者,不停的消费产品
当消费者去取数据时,发现数据不存在,则进入wait状态,等待生产者的唤醒,生产者生产出了数据后就notify消费者,把它唤醒去处理数据.
[解决办法]
学习中哈,顶顶!
[解决办法]
阻塞队列...
[解决办法]
PV操作……