我现在定义了一个方法 这个方法有2种重载方式
当程序运行后 我可能有最多可能同时10遍调用这个方法
现在目前情况就是 我只调用1次,没任何问题
如果同时调用10次,立刻没有响应。上课的时候我好像记得老师说过 在定义方法之前加一个词就可以达到一种效果
就算10次调用同时进行,它一个个运行,第一个运行完毕后再运行下一个慢点就慢点了 总比没有响应好不知道大家是否能看懂我的意思。。
希望能给与我帮助...
翻书翻了好久没找到  网上搜索也不知道该用什么关键字来找。。
谢谢各位。。

解决方案 »

  1.   

    如果你有多线程的话,用synchronized修饰方法就行了。
    如果没有多线程的话,那是你程序逻辑的问题。仔细检查你的程序逻辑。
      

  2.   

    把你的代码贴出来看看是怎么没反映了
     同步 synchronized
      

  3.   

    你可能用到是多线程吧
    synchronized是一个锁
    排斥的
      

  4.   

    什么叫同时调用?多线程?
    synchronized不是什么问题都能解决的
      

  5.   

    对象的方法,不加synchronized一样可以是线程安全的,那就是:方法是无状态的。
    说简单点,就是你的方法内部没有访问其他对象(所有的静态及非静态成员变量与成员方法);方法内用到的所有变量都真的是“局部”变量:在方法内部声明的变量。这样,你无论多少个线程来访问这个对象的这个方法,都100%没有问题。
    再回来说楼主的问题:同时调用方法10次,就挂死了。感觉是死锁了,不是简单的一个synchronized就可以解决.就像楼上某位大虾说的,好好看看代码逻辑此外,加synchronized固然可以保护你的代码正确执行(但不会全部),但是就像卡巴杀毒一样,synchronized排他性太高,所有被sychronized圈起来的代码都不能并行执行,如此一来,实际上你的多线程已经没有多大意义了。
      

  6.   

    我想你原来都不知道 synchronized 。
    那就是你没有加锁啊 
    那怎么可能死锁呢?
    除非你的对象的内部是有锁的机制
    这个加了synchronized 也没有用吧 
    死锁是有synchronized 的时候等待锁的时候造成的 
    不知道你的程序时怎么回事
      

  7.   

    synchronized 可以参考相关的例子
      

  8.   

    不好意思各位昨天后来被领导叫去有事耽误了
    我是这么个情况
    用到了线程
    我一个类b继承JLabel 用了runable接口 
    然后创建了10个类b  同时start() 以达到一10个数字滚动的效果
    到这里都没问题 
    问题出在停止滚动之后 
    在停止滚动之后 我要把这10个JLabel的text朝库里存入 
    存入的方法我也是写在类b里的 
    一写入就没有响应 
    然后去看数据库,有时一个也写不进,有时能写进去几个......谢谢各位。。实在不好意思。。昨天真的一忙就忘了。。
      

  9.   

    带代码就是 
    10个b类 一起 start() 然后一起stop()
    然后从b1到b10同时调用它的存库的方法.....
    应该就是这里有问题...
    线程不太懂。