小弟刚接触多线程编程遇到如下问题:  如果使用继承Thread类的方法实现多线程应该是这个样子的:
 
  public class MyThread extends Thread 
{
    MyThread()
    {
    }
    public void run()
    {
         //一些逻辑代码
        synchronized (this)
        {
             //需要同步的代码块
        } 
         
    }
}然后再另外一个地方启动启动线程:
public class MyTest { public static void main(String[] args) {

new MyThread.start();
                  new MyThread.start();
                  new MyThread.start();

}}问题在于每当new MyThread.start();时都会产生一个新的this,每个线程一个锁旗标不能起到信号量的作用啊?
我刚接触的,不太清楚请大家指教

解决方案 »

  1.   

    synchronized (this)
    --> synchronized (MyThread.class)
      

  2.   

    对,你的synchronized对this,你又有三个,锁旗标不一致,建议用Runnable
      

  3.   

    //一些逻辑代码
            synchronized (this)
            {
                 //需要同步的代码块
            } 
    改成如下: //一些逻辑代码
            synchronized
            {
                 //需要同步的代码块
            }