不是线程多就快的,cup一次只能处理一个线程,线程也是要排队的

解决方案 »

  1.   

    如果只是更新表a,就像曹版说的不用线程更好。一般这种操作,在更新表a之前都会由应用程序发起N个线程进行一些处理,然后更新数据的标志位表示处理结果。
    这样的操作的思路是,首先确定每个线程一次工作的数量,也就是一个线程一出处理多少条数据,所有线程使用同一个sql链接进行数据库操作,取得“未处理”数据,并把数据标志成一个"处理中"的中间状态,处理完了再去更新处理结果。
      

  2.   

    版主好,是这样的,要给100多台消费机,更新白名单,每台消费机有1万2左右的白名单,所以要想办法同时做这件事,越快完成越好。
    在数据里的白名单中放个下发标示字段,下发了就为1,一直到没有0的为止。像这样的需求,liuchaolin 前辈说的用线程也不好,那应该怎么处理?
      

  3.   

    怎么理解?消费机是rs485,但转接的rj45口,配ip,通过ip访问,通过协议操作消费机。
      

  4.   

    怎么理解?消费机是rs485,但转接的rj45口,配ip,通过ip访问,通过协议操作消费机。
    那实际上还是RS485,IP和端口只不过是网关的.
    你两个(以上)线程往同一个IP和端口下发数据没问题,但是网关那头协议转换后还是同一个RS485,效率不会提高,而且有可能造成数据冲突,乱码.
      

  5.   

    怎么理解?消费机是rs485,但转接的rj45口,配ip,通过ip访问,通过协议操作消费机。
    那实际上还是RS485,IP和端口只不过是网关的.
    你两个(以上)线程往同一个IP和端口下发数据没问题,但是网关那头协议转换后还是同一个RS485,效率不会提高,而且有可能造成数据冲突,乱码.没有2个以上的线程写同一个ip地址,就是想分开100多个线程同时往不同的机器里写名单。