Java線程通信在使用的時候需要我們不斷學習,在學習的時候會有很多的問題存在。其實我們在源代碼中就能發現其中的奧秘。因為ThreadNum和ThreadChar都有對Objecto的引用,所以你wait和notify的時候都應該同步,Java線程通信具體看如下:
1.public class Test8 {
2.public static void main(String[] args){
3.Object o=new Object();
4.Thread n=new ThreadNum(o);
5.Thread c=new ThreadChar(o);
6.n.start();
7.c.start();
8.}
9.}
10.class ThreadNum extends Thread{
11.Object o;
12.public ThreadNum(Object o){
13.this.o=o;
14.}
15.public void run(){
16.for(int i=1;i<26;i++){
17.System.out.println(i);
18.System.out.println(++i);
19.try {
20.synchronized (this) {
21.this.wait();
22.}
23.} catch (InterruptedException e) {}
24.synchronized (this) {
25.
26.this.notify();
27.}
28.}
29.}
30.}
31.class ThreadChar extends Thread{
32.Object o;
33.public ThreadChar(Object o){
34.this.o=o;
35.}
36.public void run(){
37.for(char a='A';a<='Z';a++){
38.System.out.println(a);
39.synchronized (this) {
40.
41.this.notify();
42.}
43.try {
44.synchronized (this) {
45.this.wait();
46.}
47.} catch (InterruptedException e) {}
48.}
49.}
50.}
以上就是對Java線程通信的詳細介紹。