关键字synchronized 是同步的意思吧,在多个线程的时候(继承Thread类或者实现Runnable接口的时候)用到,这我可以理解
但在并没有继承Thread类或者实现Runnable接口的时候, 为什么在有些函数面也加呢??可以不可以解释一下,什么情况下需要.........

解决方案 »

  1.   

    synchronized是跟据对像来说的。比如你在一个类里叫ClassA,里面有方法A()是synchronized的,那你在另的地方new了个ClassA对像,然后启动很多线程调用ClassA对像的A()方法,这时就只有一个进程能进入A()方法,因为A()方法是synchronized的,其它线程都阻塞了。
    不知道我这样说楼主明不明白。
      

  2.   

    synchronized是跟据对像来说的。比如你在一个类里叫ClassA,里面有方法A()是synchronized的,那你在另的地方new了个ClassA对像,然后启动很多线程调用ClassA对像的A()方法,这时就只有一个进程能进入A()方法,因为A()方法是synchronized的,其它线程都阻塞了。
    不知道我这样说楼主明不明白。
      

  3.   

    synchronized是跟据对像来说的。比如你在一个类里叫ClassA,里面有方法A()是synchronized的,那你在另的地方new了个ClassA对像,然后启动很多线程调用ClassA对像的A()方法,这时就只有一个进程能进入A()方法,因为A()方法是synchronized的,其它线程都阻塞了。
    不知道我这样说楼主明不明白。
      

  4.   


    这个要说一下就是synchronized 关键字是保证多线程同时访问的时候可以顺序进入,比如一个方法 A(),加了synchronized 后,如果有多个线程去访问A(),那么他就保证只有等第一个线程访问完了之后,第二个线程才能进去。而继承Thread类或者实现Runnable接口的类,只代表他是一个线程而已,和synchronized 没有直接关系
      

  5.   

    synchronized是跟据对像来说的。比如你在一个类里叫ClassA,里面有方法A()是synchronized的,那你在另的地方new了个ClassA对像,然后启动很多线程调用ClassA对像的A()方法,这时就只有一个进程能进入A()方法,因为A()方法是synchronized的,其它线程都阻塞了。
    不知道我这样说楼主明不明白。
      

  6.   

    说明要同步那个方法,没有规定说synchronized 一定在继承Thread或者实现Runnable的接口中才能使用!你想在那里使用,就能使用!
      

  7.   

    synchronized 没听说必须在线程类里边使用.
    只要可能需要进行同步的地方都可以使用它.
      

  8.   

    synchronized锁的是资源(数据,对象等),不是代码段
    比如两个人就两根筷子,一个人在用的话,另外一个人就不能用
    不是说一个人在吃饭,另外一个人就不能吃饭(他可以用其它的工具)