解决方案 »

  1.   

    每个线程应是独立的,当要访问资源时才会有竞争的出现,再需要同步。另外线程要么自己sleep,要么等待。
      

  2.   

    最常用的就是共享内存了,具体实现可以让工作类继承Runable,这样方便多个Thread使用同一个工作类,从而读取同一个工作类的成员变量。
    例:
    package com.threadtest;  
    class MyThread implements Runnable{  
        private int ticket =10;  
        private String name;  
        public void run(){  
            for(int i =0;i<500;i++){  
                if(this.ticket>0){  
                    System.out.println(Thread.currentThread().getName()+"卖票---->"+(this.ticket--));  
                }  
            }  
        }  
    }  
    public class RunnableDemo {  
        public static void main(String[] args) {  
            // TODO Auto-generated method stub  
            //设计三个线程  
             MyThread mt = new MyThread();  
             Thread t1 = new Thread(mt,"一号窗口");  
             Thread t2 = new Thread(mt,"二号窗口");  
             Thread t3 = new Thread(mt,"三号窗口");           t1.start();  
             t2.start();  
             t3.start();  
        }  
    }
      

  3.   

    哥们,java进程实际上调用的是操作系统的进程,进程之间的通信需要在内核的环境,进程间通信主要包括管道, 系统IPC(Inter-Process Communication,进程间通信)(包括消息队列,信号,共享存储), 套接字(SOCKET).