immutable 不可变对象
threadsafe 线程安全的可以放心使用如javautilTimer
conditionally threadsafe 条件线程安全的如Vector和Hashtable一般是安全的除非存在几个方法调用之间的顺序不能被打断这时可以用额外的锁来完成
threadcompatible 可以使用synchronized (objectReference)来协助完成对线程的调用
threadhostile 不安全的
wait & notifyAll
在循环中使用wait 使用notifyAll而不是notify
pipe
java中也有pipe的四个类PipedInputStream PipedInputReader PipedOutputStream PipedOutputWriter 下面是一段生产者消费者的代码(摘自core javaII)
/* set up pipes */
PipedOutputStream pout = new PipedOutputStream();
PipedInputStream pin = new PipedInputStream(pout);
PipedOutputStream pout = new PipedOutputStream();
PipedInputStream pin = new PipedInputStream(pout);
/* construct threads */
Producer prod = new Producer(pout);
Filter filt = new Filter(pin pout);
Consumer cons = new Consumer(pin);
/* start threads */
prodstart();
filtstart();
consstart();
[] []