有这样的一个案例:电影院的抢票秒杀 : 一共有3个步骤 :登陆进去 后 页面A第一步: 进去后系统给你分配哪一天的第几场?
页面A第二部:在本页面上面系统给出了当前可用的日期和当天可用抢购的 场次,但是要输入一个 确认码,比如 姓名、身份证号等
页面A第三步:输入了后,点击确认,确认订购抢票。完成如果上一场抢完,则从第一步进去后,系统自动会给你安排下一场的抢票之前的时候做了个程序,按照流程 从第一步到第三步可以抢到票,但是现在很难抢到了,不知道是不是人太多了,抢的时候服务器很慢,而且总是发出请求后,半天才反应,然后提示说已经被预定了,程序只能又从第一步开始重新获取最新的系统分配的场次和日期,但是进去后又被抢了,又的重复。现在的时候如果想抢多张票的话,就开几个线程,一个线程抢一张,所以有没有可优化的步骤?服务器上的web程序是asp.net做的,如果我现在增加线程,每张票我也是用多线程,如果我要抢3张票,每张票用3个线程去抢,那一共就会有 9个线程,可能会增加抢到的可能性。其他的方面有没有可优化的地方?我使用的是 httpwebreqeust 来连接服务器 ,如果是Socket会不会快点?如果不是抢票的时间段进去的话,那速度很快 ,但是如果是在抢票的时候进去的话 就非常慢。
页面A第二部:在本页面上面系统给出了当前可用的日期和当天可用抢购的 场次,但是要输入一个 确认码,比如 姓名、身份证号等
页面A第三步:输入了后,点击确认,确认订购抢票。完成如果上一场抢完,则从第一步进去后,系统自动会给你安排下一场的抢票之前的时候做了个程序,按照流程 从第一步到第三步可以抢到票,但是现在很难抢到了,不知道是不是人太多了,抢的时候服务器很慢,而且总是发出请求后,半天才反应,然后提示说已经被预定了,程序只能又从第一步开始重新获取最新的系统分配的场次和日期,但是进去后又被抢了,又的重复。现在的时候如果想抢多张票的话,就开几个线程,一个线程抢一张,所以有没有可优化的步骤?服务器上的web程序是asp.net做的,如果我现在增加线程,每张票我也是用多线程,如果我要抢3张票,每张票用3个线程去抢,那一共就会有 9个线程,可能会增加抢到的可能性。其他的方面有没有可优化的地方?我使用的是 httpwebreqeust 来连接服务器 ,如果是Socket会不会快点?如果不是抢票的时间段进去的话,那速度很快 ,但是如果是在抢票的时候进去的话 就非常慢。
至于Socket和httpwebreqeust哪个性能更好,你做实验对比下,不就清楚了?因为比较理想化,理论上分析出来的结果,实际使用中并不见得是那么回事儿。
看来只能增加线程数,提高并发,这样才有可能提高抢到的可能性。Socket和httpwebrequeset的话,估计这样的开销可以忽略。