现在我要做一个功能,项目里面有个群发短信通知的功能,想用多线程同时给这么多人发送消息,怎么写?
搞两个线程就行了,一个线程从集合中读取号码,把他与要发送的内容封装起来,交给第二个线程,执行发送就行了
现在一般的短信服务商提供的api速度都很快的,单线程遍历列表,几秒钟就可以发送成千上万条记录吧,这个需要你测试一下。如果几秒钟就可以搞定,就没必要用多线程了,多线程启动多了也不好。
如果确实需要多线程,建议弄一个线程池,而不是成千上万个线程一对一的发送,那样你的机器估计一下就卡死了吧。
建议你用消息队列 就想RabbitMQ
Net4.0后有个东西叫并行循环Parallel.For,配合多线程,试试
两个线程就行了,一个线程从集合中读取号码,把他与要发送的内容封装起来,交给第二个线程,执行发送就行了
现在一般的短信服务商提供的api速度都很快的,单线程遍历列表,几秒钟就可以发送成千上万条记录吧,这个需要你测试一下。如果几秒钟就可以搞定,就没必要用多线程了,多线程启动多了也不好。
如果确实需要多线程,建议弄一个线程池,而不是成千上万个线程一对一的发送,那样你的机器估计一下就卡死了吧。
有一种方式叫广播地址~
可以直接开线程发就是了
弄一个线程池,而不是成千上万个线程一对一的发送
有一种方式叫广播地址~
用短信机还是短信模块?通讯商的短信机的话,不需要你处理,直接打包扔过去,就好了。短信模块的话,只需要用到队列就行了。
已经解决了,我开了4个线程,把取出来的人,放入了队列中